{"version":3,"sources":["vendor/ember-cli/app-prefix.js","garaje/adapters/application.js","garaje/adapters/employees-filter.js","garaje/adapters/entry.js","garaje/adapters/google-app.js","garaje/adapters/ifttt-integration.js","garaje/adapters/invite.js","garaje/adapters/leaderboard.js","garaje/adapters/okta-integration.js","garaje/adapters/one-login.js","garaje/adapters/salesforce-integration.js","garaje/adapters/v2.js","garaje/adapters/zapier-integration.js","garaje/analytics/controller.js","garaje/analytics/route.js","garaje/analytics/template.js","garaje/app.js","garaje/authenticators/application.js","garaje/authorizers/application.js","garaje/authorizers/oauth2-access-token.js","garaje/components/add-employee-table-row.js","garaje/components/address-input.js","garaje/components/admin-config/component.js","garaje/components/admin-config/template.js","garaje/components/async-button.js","garaje/components/autofocus-input.js","garaje/components/avatar-image.js","garaje/components/box-file-picker.js","garaje/components/brush-select-zoom.js","garaje/components/calendar-grid.js","garaje/components/cc-form.js","garaje/components/checkbox-with-action.js","garaje/components/clearbit-image.js","garaje/components/col-pick-input.js","garaje/components/col-pick.js","garaje/components/color-picker.js","garaje/components/configurator-option-group.js","garaje/components/configurator-option.js","garaje/components/csv-parse.js","garaje/components/current-subscription.js","garaje/components/custom-field.js","garaje/components/day-cell.js","garaje/components/dropdown-field.js","garaje/components/dropdown-option.js","garaje/components/email-input.js","garaje/components/employee-csv-uploader.js","garaje/components/entry-feed-item.js","garaje/components/envoy-2up-calendar.js","garaje/components/envoy-calendar.js","garaje/components/envoy-sortable.js","garaje/components/file-upload.js","garaje/components/flash-message.js","garaje/components/google-maps.js","garaje/components/granular-address-lookup-fields-settings.js","garaje/components/granular-address-lookup-fields.js","garaje/components/gravatar-image.js","garaje/components/i18n-config/component.js","garaje/components/i18n-config/template.js","garaje/components/ic-menu-item.js","garaje/components/ic-menu-list.js","garaje/components/ic-menu-manager.js","garaje/components/ic-menu-trigger.js","garaje/components/ic-menu.js","garaje/components/inline-loading-spinner.js","garaje/components/invite-feed-item.js","garaje/components/ipad-custom-fields.js","garaje/components/labeled-input.js","garaje/components/leaderboard-card.js","garaje/components/lf-outlet.js","garaje/components/lf-overlay.js","garaje/components/liquid-bind.js","garaje/components/liquid-child.js","garaje/components/liquid-container.js","garaje/components/liquid-if.js","garaje/components/liquid-measured.js","garaje/components/liquid-modal.js","garaje/components/liquid-outlet.js","garaje/components/liquid-spacer.js","garaje/components/liquid-unless.js","garaje/components/liquid-versions.js","garaje/components/liquid-with.js","garaje/components/lm-container.js","garaje/components/load-more.js","garaje/components/location-info-w-map.js","garaje/components/location-info.js","garaje/components/logo-uploader.js","garaje/components/mapped-field.js","garaje/components/nda-config/component.js","garaje/components/nda-config/template.js","garaje/components/nf-area-stack.js","garaje/components/nf-area.js","garaje/components/nf-bars-group.js","garaje/components/nf-bars.js","garaje/components/nf-brush-selection.js","garaje/components/nf-crosshair.js","garaje/components/nf-dot.js","garaje/components/nf-gg.js","garaje/components/nf-graph-content.js","garaje/components/nf-graph.js","garaje/components/nf-horizontal-line.js","garaje/components/nf-hover-label-lower-text.js","garaje/components/nf-hover-label-lower.js","garaje/components/nf-hover-label-text.js","garaje/components/nf-hover-label.js","garaje/components/nf-line.js","garaje/components/nf-plot.js","garaje/components/nf-plots.js","garaje/components/nf-range-marker.js","garaje/components/nf-range-markers.js","garaje/components/nf-rect-box.js","garaje/components/nf-right-tick.js","garaje/components/nf-selection-box.js","garaje/components/nf-svg-image.js","garaje/components/nf-svg-line.js","garaje/components/nf-svg-path.js","garaje/components/nf-svg-rect.js","garaje/components/nf-tick-label.js","garaje/components/nf-tracker.js","garaje/components/nf-vertical-line-partial.js","garaje/components/nf-vertical-line.js","garaje/components/nf-x-axis.js","garaje/components/nf-y-axis.js","garaje/components/nf-y-diff.js","garaje/components/onboarding-flash-message.js","garaje/components/onboarding-header.js","garaje/components/payment-row.js","garaje/components/phone-input.js","garaje/components/plan-button.js","garaje/components/plan-ledger.js","garaje/components/pre-registration-email-preview.js","garaje/components/printer-config/component.js","garaje/components/printer-config/template.js","garaje/components/receptionist-config/component.js","garaje/components/receptionist-config/template.js","garaje/components/select-2.js","garaje/components/sign-out-dropdown.js","garaje/components/sortable-group.js","garaje/components/sortable-item.js","garaje/components/stand-description.js","garaje/components/tokenized-box.js","garaje/components/tokenized-button.js","garaje/components/up-to.js","garaje/components/week-row.js","garaje/components/x-option.js","garaje/components/x-select-blockless.js","garaje/components/x-select.js","garaje/controllers/application.js","garaje/controllers/badge-enable.js","garaje/controllers/badge.js","garaje/controllers/billing.js","garaje/controllers/dashboard.js","garaje/controllers/entry.js","garaje/controllers/ipad.js","garaje/controllers/location.js","garaje/controllers/login.js","garaje/controllers/new-location.js","garaje/controllers/notifications.js","garaje/controllers/plans.js","garaje/controllers/pre-registered.js","garaje/controllers/pre-registration-upgrade.js","garaje/controllers/pre-registration.js","garaje/controllers/subscribe.js","garaje/customize/accent-color/component.js","garaje/customize/accent-color/template.js","garaje/customize/company-logo/component.js","garaje/customize/company-logo/template.js","garaje/customize/controller.js","garaje/customize/route.js","garaje/customize/slideshow-images/component.js","garaje/customize/slideshow-images/template.js","garaje/customize/template.js","garaje/customize/welcome-image/component.js","garaje/customize/welcome-image/template.js","garaje/employee/controller.js","garaje/employee/model.js","garaje/employee/route.js","garaje/employee/template.js","garaje/employees/controller.js","garaje/employees/index/route.js","garaje/employees/index/template.js","garaje/employees/nav/template.js","garaje/employees/route.js","garaje/employees/template.js","garaje/helpers/and.js","garaje/helpers/array-to-sentence.js","garaje/helpers/capitalize-word.js","garaje/helpers/eq.js","garaje/helpers/format-hour-minute.js","garaje/helpers/formatted-currency.js","garaje/helpers/gt.js","garaje/helpers/gte.js","garaje/helpers/is-array.js","garaje/helpers/lt.js","garaje/helpers/lte.js","garaje/helpers/moment-duration.js","garaje/helpers/moment-format.js","garaje/helpers/moment-from-now.js","garaje/helpers/moment-to-now.js","garaje/helpers/not-eq.js","garaje/helpers/not.js","garaje/helpers/or.js","garaje/helpers/pluralized-word.js","garaje/helpers/with-fallback.js","garaje/import/controller.js","garaje/import/route.js","garaje/import/template.js","garaje/initializers/active-model-adapter.js","garaje/initializers/container-debug-adapter.js","garaje/initializers/current-admin-service.js","garaje/initializers/current-location-service.js","garaje/initializers/ember-data-factory-guy.js","garaje/initializers/ember-simple-auth.js","garaje/initializers/export-application-global.js","garaje/initializers/liquid-fire.js","garaje/initializers/load-google-maps.js","garaje/initializers/local-storage-service.js","garaje/initializers/reopen-textfield.js","garaje/initializers/simple-auth-oauth2-access-token-authorizer.js","garaje/initializers/subscription-service.js","garaje/initializers/truth-helpers.js","garaje/instance-initializers/active-model-adapter.js","garaje/instance-initializers/app-version.js","garaje/instance-initializers/ember-simple-auth.js","garaje/instance-initializers/error-reporting.js","garaje/mixins/abortable-ajax.js","garaje/mixins/accent-color-handlers.js","garaje/mixins/address-lookup.js","garaje/mixins/col-pick-on-change.js","garaje/mixins/company-logo-handlers.js","garaje/mixins/droppable-upload.js","garaje/mixins/editing-route.js","garaje/mixins/highlight-changes.js","garaje/mixins/intercom-update.js","garaje/mixins/multi-location-helpers.js","garaje/mixins/reset-scroll.js","garaje/mixins/segment-page-view.js","garaje/mixins/slideshow-handlers.js","garaje/mixins/sync-settings/all-filter.js","garaje/mixins/sync-settings/object.js","garaje/mixins/welcome-image-handlers.js","garaje/models/admin-fragment.js","garaje/models/admin.js","garaje/models/badge.js","garaje/models/box.js","garaje/models/company.js","garaje/models/config.js","garaje/models/coupon.js","garaje/models/custom-field.js","garaje/models/dropdown-option.js","garaje/models/employee-filter.js","garaje/models/employees-filter.js","garaje/models/entry.js","garaje/models/google-app.js","garaje/models/hipchat-connection.js","garaje/models/ifttt-integration.js","garaje/models/integration.js","garaje/models/invite.js","garaje/models/leaderboard.js","garaje/models/localized-field.js","garaje/models/location.js","garaje/models/logo.js","garaje/models/nda.js","garaje/models/okta-integration.js","garaje/models/one-login.js","garaje/models/payment.js","garaje/models/plan.js","garaje/models/printer.js","garaje/models/receptionist.js","garaje/models/salesforce-integration.js","garaje/models/saml.js","garaje/models/slideshow.js","garaje/models/subscription.js","garaje/models/thumbnail.js","garaje/models/user-datum.js","garaje/models/watchlist.js","garaje/models/webhook.js","garaje/models/zapier-integration.js","garaje/new-employee/route.js","garaje/protected/onboarding/controller.js","garaje/protected/onboarding/employees/add-manual/controller.js","garaje/protected/onboarding/employees/add-manual/route.js","garaje/protected/onboarding/employees/add-manual/template.js","garaje/protected/onboarding/employees/import-csv/controller.js","garaje/protected/onboarding/employees/import-csv/route.js","garaje/protected/onboarding/employees/import-csv/template.js","garaje/protected/onboarding/employees/index/route.js","garaje/protected/onboarding/employees/index/template.js","garaje/protected/onboarding/employees/route.js","garaje/protected/onboarding/employees/syncing/route.js","garaje/protected/onboarding/employees/syncing/template.js","garaje/protected/onboarding/employees/template.js","garaje/protected/onboarding/equipment/envoy-in-a-box/controller.js","garaje/protected/onboarding/equipment/envoy-in-a-box/route.js","garaje/protected/onboarding/equipment/envoy-in-a-box/template.js","garaje/protected/onboarding/equipment/index/route.js","garaje/protected/onboarding/equipment/index/template.js","garaje/protected/onboarding/equipment/template.js","garaje/protected/onboarding/index/route.js","garaje/protected/onboarding/ipad/controller.js","garaje/protected/onboarding/ipad/route.js","garaje/protected/onboarding/ipad/template.js","garaje/protected/onboarding/location/controller.js","garaje/protected/onboarding/location/route.js","garaje/protected/onboarding/location/template.js","garaje/protected/onboarding/notifications/controller.js","garaje/protected/onboarding/notifications/route.js","garaje/protected/onboarding/notifications/template.js","garaje/protected/onboarding/pre-registration/controller.js","garaje/protected/onboarding/pre-registration/route.js","garaje/protected/onboarding/pre-registration/template.js","garaje/protected/onboarding/route.js","garaje/protected/onboarding/template.js","garaje/protected/onboarding/video/route.js","garaje/protected/onboarding/video/template.js","garaje/router.js","garaje/routes/admin.js","garaje/routes/application.js","garaje/routes/badge-edit.js","garaje/routes/badge-enable.js","garaje/routes/badge.js","garaje/routes/billing/index.js","garaje/routes/billing.js","garaje/routes/dashboard.js","garaje/routes/devices/index.js","garaje/routes/devices.js","garaje/routes/entry.js","garaje/routes/i18n.js","garaje/routes/ipad.js","garaje/routes/location.js","garaje/routes/login.js","garaje/routes/new-location.js","garaje/routes/not-found.js","garaje/routes/notifications.js","garaje/routes/plans.js","garaje/routes/pre-registered.js","garaje/routes/pre-registration-upgrade.js","garaje/routes/pre-registration.js","garaje/routes/protected/index.js","garaje/routes/protected.js","garaje/routes/receptionist.js","garaje/routes/settings/index.js","garaje/routes/settings.js","garaje/routes/subscribe.js","garaje/serializers/application.js","garaje/serializers/config.js","garaje/serializers/employees-filter.js","garaje/serializers/google-app.js","garaje/serializers/ifttt-integration.js","garaje/serializers/leaderboard.js","garaje/serializers/nested.js","garaje/serializers/okta-integration.js","garaje/serializers/one-login.js","garaje/serializers/salesforce-integration.js","garaje/serializers/v2.js","garaje/serializers/zapier-integration.js","garaje/services/address-lookup.js","garaje/services/ajax.js","garaje/services/current-admin.js","garaje/services/current-location.js","garaje/services/google-sync-manager.js","garaje/services/integrations-manager.js","garaje/services/liquid-fire-modals.js","garaje/services/liquid-fire-transitions.js","garaje/services/local-storage.js","garaje/services/locations.js","garaje/services/message-bus.js","garaje/services/pubnub.js","garaje/services/session.js","garaje/services/subscription.js","garaje/services/sync-manager.js","garaje/services/validations.js","garaje/settings/integrations/controller.js","garaje/settings/integrations/enabled/controller.js","garaje/settings/integrations/enabled/route.js","garaje/settings/integrations/enabled/template.js","garaje/settings/integrations/google-apps-config-box/component.js","garaje/settings/integrations/google-apps-config-box/template.js","garaje/settings/integrations/google-hangouts-config-box/component.js","garaje/settings/integrations/google-hangouts-config-box/template.js","garaje/settings/integrations/hipchat-config-box/component.js","garaje/settings/integrations/hipchat-config-box/template.js","garaje/settings/integrations/ifttt-config-box/component.js","garaje/settings/integrations/ifttt-config-box/template.js","garaje/settings/integrations/index/route.js","garaje/settings/integrations/index/template.js","garaje/settings/integrations/install-box/component.js","garaje/settings/integrations/install-box/template.js","garaje/settings/integrations/integration-request/component.js","garaje/settings/integrations/integration-request/template.js","garaje/settings/integrations/okta-config-box/component.js","garaje/settings/integrations/okta-config-box/template.js","garaje/settings/integrations/one-login-config-box/component.js","garaje/settings/integrations/one-login-config-box/template.js","garaje/settings/integrations/route.js","garaje/settings/integrations/salesforce-config-box/component.js","garaje/settings/integrations/salesforce-config-box/template.js","garaje/settings/integrations/saml-config-box/component.js","garaje/settings/integrations/saml-config-box/template.js","garaje/settings/integrations/slack-config-box/component.js","garaje/settings/integrations/slack-config-box/template.js","garaje/settings/integrations/template.js","garaje/settings/integrations/webhook-config-box/component.js","garaje/settings/integrations/webhook-config-box/template.js","garaje/settings/integrations/zapier-config-box/component.js","garaje/settings/integrations/zapier-config-box/template.js","garaje/sync-settings/all-filter/component.js","garaje/sync-settings/all-filter/template.js","garaje/sync-settings/company-filter/component.js","garaje/sync-settings/company-filter/template.js","garaje/sync-settings/controller.js","garaje/sync-settings/google-apps/all-filter/component.js","garaje/sync-settings/google-apps/all-filter/template.js","garaje/sync-settings/google-apps/company-filter/component.js","garaje/sync-settings/google-apps/company-filter/template.js","garaje/sync-settings/google-apps/component.js","garaje/sync-settings/google-apps/locations-filter/component.js","garaje/sync-settings/google-apps/locations-filter/filter-input/component.js","garaje/sync-settings/google-apps/locations-filter/filter-input/template.js","garaje/sync-settings/google-apps/locations-filter/template.js","garaje/sync-settings/google-apps/template.js","garaje/sync-settings/group-select/component.js","garaje/sync-settings/group-select/template.js","garaje/sync-settings/locations-filter/component.js","garaje/sync-settings/locations-filter/location-filter/component.js","garaje/sync-settings/locations-filter/location-filter/template.js","garaje/sync-settings/locations-filter/template.js","garaje/sync-settings/okta-integration/all-filter/template.js","garaje/sync-settings/okta-integration/component.js","garaje/sync-settings/okta-integration/template.js","garaje/sync-settings/one-login/component.js","garaje/sync-settings/one-login/template.js","garaje/sync-settings/route.js","garaje/sync-settings/template.js","garaje/templates/-admin.js","garaje/templates/application.js","garaje/templates/badge-enable.js","garaje/templates/badge.js","garaje/templates/billing/-paying.js","garaje/templates/billing/-trial.js","garaje/templates/billing/index.js","garaje/templates/components/add-employee-table-row.js","garaje/templates/components/box-file-picker.js","garaje/templates/components/brush-select-zoom.js","garaje/templates/components/calendar-grid.js","garaje/templates/components/calendar-header.js","garaje/templates/components/cc-form.js","garaje/templates/components/col-pick-input.js","garaje/templates/components/color-picker.js","garaje/templates/components/configurator-option-group.js","garaje/templates/components/configurator-option.js","garaje/templates/components/current-subscription.js","garaje/templates/components/custom-field.js","garaje/templates/components/day-cell.js","garaje/templates/components/dropdown-field.js","garaje/templates/components/dropdown-option.js","garaje/templates/components/employee-csv-uploader.js","garaje/templates/components/entry-feed-item.js","garaje/templates/components/envoy-2up-calendar.js","garaje/templates/components/envoy-calendar.js","garaje/templates/components/flash-message.js","garaje/templates/components/google-maps.js","garaje/templates/components/granular-address-lookup-fields-settings.js","garaje/templates/components/granular-address-lookup-fields.js","garaje/templates/components/ic-menu-css.js","garaje/templates/components/ic-menu-list.js","garaje/templates/components/ic-menu-manager.js","garaje/templates/components/ic-menu.js","garaje/templates/components/inline-loading-spinner.js","garaje/templates/components/invite-feed-item.js","garaje/templates/components/ipad-custom-fields.js","garaje/templates/components/labeled-input.js","garaje/templates/components/leaderboard-card.js","garaje/templates/components/liquid-bind.js","garaje/templates/components/liquid-container.js","garaje/templates/components/liquid-if.js","garaje/templates/components/liquid-modal.js","garaje/templates/components/liquid-outlet.js","garaje/templates/components/liquid-versions.js","garaje/templates/components/liquid-with.js","garaje/templates/components/load-more.js","garaje/templates/components/location-info-w-map.js","garaje/templates/components/location-info.js","garaje/templates/components/logo-uploader.js","garaje/templates/components/mapped-field.js","garaje/templates/components/nf-area.js","garaje/templates/components/nf-bars.js","garaje/templates/components/nf-brush-selection.js","garaje/templates/components/nf-crosshair.js","garaje/templates/components/nf-graph-content.js","garaje/templates/components/nf-graph.js","garaje/templates/components/nf-line.js","garaje/templates/components/nf-plots.js","garaje/templates/components/nf-range-marker.js","garaje/templates/components/nf-right-tick.js","garaje/templates/components/nf-table-manager.js","garaje/templates/components/nf-tick-label.js","garaje/templates/components/nf-tracker.js","garaje/templates/components/nf-x-axis.js","garaje/templates/components/nf-y-axis.js","garaje/templates/components/nf-y-diff.js","garaje/templates/components/onboarding-header.js","garaje/templates/components/payment-row.js","garaje/templates/components/plan-button.js","garaje/templates/components/plan-ledger.js","garaje/templates/components/pre-registration-email-preview.js","garaje/templates/components/search-loader.js","garaje/templates/components/settings-box.js","garaje/templates/components/sign-out-dropdown.js","garaje/templates/components/stand-description.js","garaje/templates/components/tokenized-box.js","garaje/templates/components/tokenized-button.js","garaje/templates/components/up-to.js","garaje/templates/components/week-row.js","garaje/templates/components/x-select.js","garaje/templates/dashboard/-nav.js","garaje/templates/dashboard/index.js","garaje/templates/dashboard/loading.js","garaje/templates/dashboard.js","garaje/templates/devices/-nav.js","garaje/templates/devices.js","garaje/templates/entry/-nav.js","garaje/templates/entry.js","garaje/templates/error.js","garaje/templates/invite.js","garaje/templates/ipad/-deliveries.js","garaje/templates/ipad/-nda-bcc.js","garaje/templates/ipad.js","garaje/templates/ipads.js","garaje/templates/loading.js","garaje/templates/location/-disabled.js","garaje/templates/location.js","garaje/templates/login.js","garaje/templates/new-location/-upgrade.js","garaje/templates/new-location.js","garaje/templates/not-found.js","garaje/templates/notifications.js","garaje/templates/plans/-plan.js","garaje/templates/plans-under-free.js","garaje/templates/plans.js","garaje/templates/pre-registered.js","garaje/templates/pre-registration-upgrade.js","garaje/templates/pre-registration.js","garaje/templates/printers.js","garaje/templates/protected.js","garaje/templates/settings/-nav.js","garaje/templates/settings/loading.js","garaje/templates/settings.js","garaje/templates/subscribe.js","garaje/templates/unauthorized.js","garaje/tests/acceptance/analytics-test.js","garaje/tests/acceptance/analytics-test.jshint.js","garaje/tests/acceptance/application-test.js","garaje/tests/acceptance/application-test.jshint.js","garaje/tests/acceptance/badge-preview-test.js","garaje/tests/acceptance/badge-preview-test.jshint.js","garaje/tests/acceptance/badge-printer-test.js","garaje/tests/acceptance/badge-printer-test.jshint.js","garaje/tests/acceptance/billing-legacy-test.js","garaje/tests/acceptance/billing-legacy-test.jshint.js","garaje/tests/acceptance/billing-payment-method-test.js","garaje/tests/acceptance/billing-payment-method-test.jshint.js","garaje/tests/acceptance/billing-payments-test.js","garaje/tests/acceptance/billing-payments-test.jshint.js","garaje/tests/acceptance/billing-plans-standard-test.js","garaje/tests/acceptance/billing-plans-standard-test.jshint.js","garaje/tests/acceptance/billing-plans-trial-test.js","garaje/tests/acceptance/billing-plans-trial-test.jshint.js","garaje/tests/acceptance/billing-standard-test.js","garaje/tests/acceptance/billing-standard-test.jshint.js","garaje/tests/acceptance/billing-trial-test.js","garaje/tests/acceptance/billing-trial-test.jshint.js","garaje/tests/acceptance/boss-test.js","garaje/tests/acceptance/boss-test.jshint.js","garaje/tests/acceptance/css-badge-feature-test.js","garaje/tests/acceptance/css-badge-feature-test.jshint.js","garaje/tests/acceptance/customize-logo-test.js","garaje/tests/acceptance/customize-logo-test.jshint.js","garaje/tests/acceptance/customize-slideshows-test.js","garaje/tests/acceptance/customize-slideshows-test.jshint.js","garaje/tests/acceptance/customize-test.js","garaje/tests/acceptance/customize-test.jshint.js","garaje/tests/acceptance/customize-welcome-image-test.js","garaje/tests/acceptance/customize-welcome-image-test.jshint.js","garaje/tests/acceptance/dashboard-test.js","garaje/tests/acceptance/dashboard-test.jshint.js","garaje/tests/acceptance/disabled-location-test.js","garaje/tests/acceptance/disabled-location-test.jshint.js","garaje/tests/acceptance/document-title-test.js","garaje/tests/acceptance/document-title-test.jshint.js","garaje/tests/acceptance/employees/google-sync-test.js","garaje/tests/acceptance/employees/google-sync-test.jshint.js","garaje/tests/acceptance/employees/okta-sync-test.js","garaje/tests/acceptance/employees/okta-sync-test.jshint.js","garaje/tests/acceptance/employees/one-login-sync-test.js","garaje/tests/acceptance/employees/one-login-sync-test.jshint.js","garaje/tests/acceptance/employees-test.js","garaje/tests/acceptance/employees-test.jshint.js","garaje/tests/acceptance/entry-test.js","garaje/tests/acceptance/entry-test.jshint.js","garaje/tests/acceptance/integrations/google-test.js","garaje/tests/acceptance/integrations/google-test.jshint.js","garaje/tests/acceptance/integrations/gtalk-test.js","garaje/tests/acceptance/integrations/gtalk-test.jshint.js","garaje/tests/acceptance/integrations/hipchat-test.js","garaje/tests/acceptance/integrations/hipchat-test.jshint.js","garaje/tests/acceptance/integrations/ifttt-test.js","garaje/tests/acceptance/integrations/ifttt-test.jshint.js","garaje/tests/acceptance/integrations/okta-test.js","garaje/tests/acceptance/integrations/okta-test.jshint.js","garaje/tests/acceptance/integrations/one-login-test.js","garaje/tests/acceptance/integrations/one-login-test.jshint.js","garaje/tests/acceptance/integrations/salesforce-test.js","garaje/tests/acceptance/integrations/salesforce-test.jshint.js","garaje/tests/acceptance/integrations/saml-test.js","garaje/tests/acceptance/integrations/saml-test.jshint.js","garaje/tests/acceptance/integrations/slack-test.js","garaje/tests/acceptance/integrations/slack-test.jshint.js","garaje/tests/acceptance/integrations/webhook-test.js","garaje/tests/acceptance/integrations/webhook-test.jshint.js","garaje/tests/acceptance/integrations/zapier-test.js","garaje/tests/acceptance/integrations/zapier-test.jshint.js","garaje/tests/acceptance/ipad-nda-test.js","garaje/tests/acceptance/ipad-nda-test.jshint.js","garaje/tests/acceptance/ipad-slideshows-test.js","garaje/tests/acceptance/ipad-slideshows-test.jshint.js","garaje/tests/acceptance/ipad-visitor-information-test.js","garaje/tests/acceptance/ipad-visitor-information-test.jshint.js","garaje/tests/acceptance/ipad-welcome-image-test.js","garaje/tests/acceptance/ipad-welcome-image-test.jshint.js","garaje/tests/acceptance/ipad-welcome-screen-test.js","garaje/tests/acceptance/ipad-welcome-screen-test.jshint.js","garaje/tests/acceptance/location-admin-test.js","garaje/tests/acceptance/location-admin-test.jshint.js","garaje/tests/acceptance/location-i18n-test.js","garaje/tests/acceptance/location-i18n-test.jshint.js","garaje/tests/acceptance/location-logo-test.js","garaje/tests/acceptance/location-logo-test.jshint.js","garaje/tests/acceptance/location-receptionist-test.js","garaje/tests/acceptance/location-receptionist-test.jshint.js","garaje/tests/acceptance/location-switcher-feature-test.js","garaje/tests/acceptance/location-switcher-feature-test.jshint.js","garaje/tests/acceptance/location-test.js","garaje/tests/acceptance/location-test.jshint.js","garaje/tests/acceptance/login-test.js","garaje/tests/acceptance/login-test.jshint.js","garaje/tests/acceptance/new-location-test.js","garaje/tests/acceptance/new-location-test.jshint.js","garaje/tests/acceptance/not-found-test.js","garaje/tests/acceptance/not-found-test.jshint.js","garaje/tests/acceptance/notifications-test.js","garaje/tests/acceptance/notifications-test.jshint.js","garaje/tests/acceptance/onboarding-test.js","garaje/tests/acceptance/onboarding-test.jshint.js","garaje/tests/acceptance/outdated-ipad-test.js","garaje/tests/acceptance/outdated-ipad-test.jshint.js","garaje/tests/acceptance/pre-registration-feature-test.js","garaje/tests/acceptance/pre-registration-feature-test.jshint.js","garaje/tests/acceptance/premium-feature-label-test.js","garaje/tests/acceptance/premium-feature-label-test.jshint.js","garaje/tests/acceptance/settings-test.js","garaje/tests/acceptance/settings-test.jshint.js","garaje/tests/acceptance/watchlist-notifications-test.js","garaje/tests/acceptance/watchlist-notifications-test.jshint.js","garaje/tests/adapters/application.jshint.js","garaje/tests/adapters/employees-filter.jshint.js","garaje/tests/adapters/entry.jshint.js","garaje/tests/adapters/google-app.jshint.js","garaje/tests/adapters/ifttt-integration.jshint.js","garaje/tests/adapters/invite.jshint.js","garaje/tests/adapters/leaderboard.jshint.js","garaje/tests/adapters/okta-integration.jshint.js","garaje/tests/adapters/one-login.jshint.js","garaje/tests/adapters/salesforce-integration.jshint.js","garaje/tests/adapters/v2.jshint.js","garaje/tests/adapters/zapier-integration.jshint.js","garaje/tests/analytics/controller.jshint.js","garaje/tests/analytics/route.jshint.js","garaje/tests/app.jshint.js","garaje/tests/authenticators/application.jshint.js","garaje/tests/authorizers/application.jshint.js","garaje/tests/authorizers/oauth2-access-token.jshint.js","garaje/tests/components/add-employee-table-row.jshint.js","garaje/tests/components/address-input.jshint.js","garaje/tests/components/admin-config/component.jshint.js","garaje/tests/components/async-button.jshint.js","garaje/tests/components/autofocus-input.jshint.js","garaje/tests/components/avatar-image.jshint.js","garaje/tests/components/box-file-picker.jshint.js","garaje/tests/components/brush-select-zoom.jshint.js","garaje/tests/components/calendar-grid.jshint.js","garaje/tests/components/cc-form.jshint.js","garaje/tests/components/checkbox-with-action.jshint.js","garaje/tests/components/clearbit-image.jshint.js","garaje/tests/components/color-picker.jshint.js","garaje/tests/components/configurator-option-group.jshint.js","garaje/tests/components/configurator-option.jshint.js","garaje/tests/components/csv-parse.jshint.js","garaje/tests/components/current-subscription.jshint.js","garaje/tests/components/custom-field.jshint.js","garaje/tests/components/day-cell.jshint.js","garaje/tests/components/dropdown-field.jshint.js","garaje/tests/components/dropdown-option.jshint.js","garaje/tests/components/email-input.jshint.js","garaje/tests/components/employee-csv-uploader.jshint.js","garaje/tests/components/entry-feed-item.jshint.js","garaje/tests/components/envoy-2up-calendar.jshint.js","garaje/tests/components/envoy-calendar.jshint.js","garaje/tests/components/envoy-sortable.jshint.js","garaje/tests/components/file-upload.jshint.js","garaje/tests/components/flash-message.jshint.js","garaje/tests/components/google-maps.jshint.js","garaje/tests/components/granular-address-lookup-fields-settings.jshint.js","garaje/tests/components/granular-address-lookup-fields.jshint.js","garaje/tests/components/gravatar-image.jshint.js","garaje/tests/components/i18n-config/component.jshint.js","garaje/tests/components/inline-loading-spinner.jshint.js","garaje/tests/components/invite-feed-item.jshint.js","garaje/tests/components/ipad-custom-fields.jshint.js","garaje/tests/components/labeled-input.jshint.js","garaje/tests/components/leaderboard-card.jshint.js","garaje/tests/components/load-more.jshint.js","garaje/tests/components/location-info-w-map.jshint.js","garaje/tests/components/location-info.jshint.js","garaje/tests/components/logo-uploader.jshint.js","garaje/tests/components/mapped-field.jshint.js","garaje/tests/components/nda-config/component.jshint.js","garaje/tests/components/nf-graph.jshint.js","garaje/tests/components/nf-hover-label-lower-text.jshint.js","garaje/tests/components/nf-hover-label-lower.jshint.js","garaje/tests/components/nf-hover-label-text.jshint.js","garaje/tests/components/nf-hover-label.jshint.js","garaje/tests/components/nf-rect-box.jshint.js","garaje/tests/components/nf-vertical-line-partial.jshint.js","garaje/tests/components/nf-x-axis.jshint.js","garaje/tests/components/onboarding-flash-message.jshint.js","garaje/tests/components/onboarding-header.jshint.js","garaje/tests/components/payment-row.jshint.js","garaje/tests/components/phone-input.jshint.js","garaje/tests/components/plan-button.jshint.js","garaje/tests/components/plan-ledger.jshint.js","garaje/tests/components/pre-registration-email-preview.jshint.js","garaje/tests/components/printer-config/component.jshint.js","garaje/tests/components/receptionist-config/component.jshint.js","garaje/tests/components/sign-out-dropdown.jshint.js","garaje/tests/components/sortable-item.jshint.js","garaje/tests/components/stand-description.jshint.js","garaje/tests/components/tokenized-box.jshint.js","garaje/tests/components/tokenized-button.jshint.js","garaje/tests/components/up-to.jshint.js","garaje/tests/components/week-row.jshint.js","garaje/tests/controllers/application.jshint.js","garaje/tests/controllers/badge-enable.jshint.js","garaje/tests/controllers/badge.jshint.js","garaje/tests/controllers/billing.jshint.js","garaje/tests/controllers/dashboard.jshint.js","garaje/tests/controllers/entry.jshint.js","garaje/tests/controllers/ipad.jshint.js","garaje/tests/controllers/location.jshint.js","garaje/tests/controllers/login.jshint.js","garaje/tests/controllers/new-location.jshint.js","garaje/tests/controllers/notifications.jshint.js","garaje/tests/controllers/plans.jshint.js","garaje/tests/controllers/pre-registered.jshint.js","garaje/tests/controllers/pre-registration-upgrade.jshint.js","garaje/tests/controllers/pre-registration.jshint.js","garaje/tests/controllers/subscribe.jshint.js","garaje/tests/customize/accent-color/component.jshint.js","garaje/tests/customize/company-logo/component.jshint.js","garaje/tests/customize/controller.jshint.js","garaje/tests/customize/route.jshint.js","garaje/tests/customize/slideshow-images/component.jshint.js","garaje/tests/customize/welcome-image/component.jshint.js","garaje/tests/employee/controller.jshint.js","garaje/tests/employee/model.jshint.js","garaje/tests/employee/route.jshint.js","garaje/tests/employees/controller.jshint.js","garaje/tests/employees/index/route.jshint.js","garaje/tests/employees/route.jshint.js","garaje/tests/factories/company.js","garaje/tests/factories/company.jshint.js","garaje/tests/factories/config.js","garaje/tests/factories/config.jshint.js","garaje/tests/factories/location.js","garaje/tests/factories/location.jshint.js","garaje/tests/factories/printer.js","garaje/tests/factories/printer.jshint.js","garaje/tests/fixtures/admin.js","garaje/tests/fixtures/admin.jshint.js","garaje/tests/fixtures/badge.js","garaje/tests/fixtures/badge.jshint.js","garaje/tests/fixtures/employee.js","garaje/tests/fixtures/employee.jshint.js","garaje/tests/fixtures/okta-integration.js","garaje/tests/fixtures/okta-integration.jshint.js","garaje/tests/fixtures/one-login.js","garaje/tests/fixtures/one-login.jshint.js","garaje/tests/helpers/array-to-sentence.jshint.js","garaje/tests/helpers/capitalize-word.jshint.js","garaje/tests/helpers/ember-simple-auth.js","garaje/tests/helpers/fill-in-with-key-press.js","garaje/tests/helpers/fill-in-with-key-press.jshint.js","garaje/tests/helpers/format-hour-minute.jshint.js","garaje/tests/helpers/formatted-currency.jshint.js","garaje/tests/helpers/parse-post-data.js","garaje/tests/helpers/parse-post-data.jshint.js","garaje/tests/helpers/pluralized-word.jshint.js","garaje/tests/helpers/register-select-helper.js","garaje/tests/helpers/resolver.js","garaje/tests/helpers/resolver.jshint.js","garaje/tests/helpers/select.js","garaje/tests/helpers/select.jshint.js","garaje/tests/helpers/start-app.js","garaje/tests/helpers/start-app.jshint.js","garaje/tests/helpers/stub-confirm.js","garaje/tests/helpers/stub-confirm.jshint.js","garaje/tests/helpers/stub-geocoder.js","garaje/tests/helpers/stub-geocoder.jshint.js","garaje/tests/helpers/validate-properties.js","garaje/tests/helpers/with-fallback.jshint.js","garaje/tests/import/controller.jshint.js","garaje/tests/import/route.jshint.js","garaje/tests/initializers/current-admin-service.jshint.js","garaje/tests/initializers/current-location-service.jshint.js","garaje/tests/initializers/load-google-maps.jshint.js","garaje/tests/initializers/local-storage-service.jshint.js","garaje/tests/initializers/reopen-textfield.jshint.js","garaje/tests/initializers/simple-auth-oauth2-access-token-authorizer.jshint.js","garaje/tests/initializers/subscription-service.jshint.js","garaje/tests/instance-initializers/error-reporting.jshint.js","garaje/tests/integration/components/entry-feed-item-test.js","garaje/tests/integration/components/entry-feed-item-test.jshint.js","garaje/tests/integration/components/plan-ledger-test.js","garaje/tests/integration/components/plan-ledger-test.jshint.js","garaje/tests/integration/sync-settings/group-select/component-test.js","garaje/tests/integration/sync-settings/group-select/component-test.jshint.js","garaje/tests/mixins/abortable-ajax.jshint.js","garaje/tests/mixins/accent-color-handlers.jshint.js","garaje/tests/mixins/address-lookup.jshint.js","garaje/tests/mixins/col-pick-on-change.jshint.js","garaje/tests/mixins/company-logo-handlers.jshint.js","garaje/tests/mixins/droppable-upload.jshint.js","garaje/tests/mixins/editing-route.jshint.js","garaje/tests/mixins/highlight-changes.jshint.js","garaje/tests/mixins/intercom-update.jshint.js","garaje/tests/mixins/multi-location-helpers.jshint.js","garaje/tests/mixins/reset-scroll.jshint.js","garaje/tests/mixins/segment-page-view.jshint.js","garaje/tests/mixins/slideshow-handlers.jshint.js","garaje/tests/mixins/sync-settings/all-filter.jshint.js","garaje/tests/mixins/sync-settings/object.jshint.js","garaje/tests/mixins/welcome-image-handlers.jshint.js","garaje/tests/models/admin-fragment.jshint.js","garaje/tests/models/admin.jshint.js","garaje/tests/models/badge.jshint.js","garaje/tests/models/box.jshint.js","garaje/tests/models/company.jshint.js","garaje/tests/models/config.jshint.js","garaje/tests/models/coupon.jshint.js","garaje/tests/models/custom-field.jshint.js","garaje/tests/models/dropdown-option.jshint.js","garaje/tests/models/employee-filter.jshint.js","garaje/tests/models/employees-filter.jshint.js","garaje/tests/models/entry.jshint.js","garaje/tests/models/google-app.jshint.js","garaje/tests/models/hipchat-connection.jshint.js","garaje/tests/models/ifttt-integration.jshint.js","garaje/tests/models/integration.jshint.js","garaje/tests/models/invite.jshint.js","garaje/tests/models/leaderboard.jshint.js","garaje/tests/models/localized-field.jshint.js","garaje/tests/models/location.jshint.js","garaje/tests/models/logo.jshint.js","garaje/tests/models/nda.jshint.js","garaje/tests/models/okta-integration.jshint.js","garaje/tests/models/one-login.jshint.js","garaje/tests/models/payment.jshint.js","garaje/tests/models/plan.jshint.js","garaje/tests/models/printer.jshint.js","garaje/tests/models/receptionist.jshint.js","garaje/tests/models/salesforce-integration.jshint.js","garaje/tests/models/saml.jshint.js","garaje/tests/models/slideshow.jshint.js","garaje/tests/models/subscription.jshint.js","garaje/tests/models/thumbnail.jshint.js","garaje/tests/models/user-datum.jshint.js","garaje/tests/models/watchlist.jshint.js","garaje/tests/models/webhook.jshint.js","garaje/tests/models/zapier-integration.jshint.js","garaje/tests/new-employee/route.jshint.js","garaje/tests/protected/onboarding/controller.jshint.js","garaje/tests/protected/onboarding/employees/add-manual/controller.jshint.js","garaje/tests/protected/onboarding/employees/add-manual/route.jshint.js","garaje/tests/protected/onboarding/employees/import-csv/controller.jshint.js","garaje/tests/protected/onboarding/employees/import-csv/route.jshint.js","garaje/tests/protected/onboarding/employees/index/route.jshint.js","garaje/tests/protected/onboarding/employees/route.jshint.js","garaje/tests/protected/onboarding/employees/syncing/route.jshint.js","garaje/tests/protected/onboarding/equipment/envoy-in-a-box/controller.jshint.js","garaje/tests/protected/onboarding/equipment/envoy-in-a-box/route.jshint.js","garaje/tests/protected/onboarding/equipment/index/route.jshint.js","garaje/tests/protected/onboarding/index/route.jshint.js","garaje/tests/protected/onboarding/ipad/controller.jshint.js","garaje/tests/protected/onboarding/ipad/route.jshint.js","garaje/tests/protected/onboarding/location/controller.jshint.js","garaje/tests/protected/onboarding/location/route.jshint.js","garaje/tests/protected/onboarding/notifications/controller.jshint.js","garaje/tests/protected/onboarding/notifications/route.jshint.js","garaje/tests/protected/onboarding/pre-registration/controller.jshint.js","garaje/tests/protected/onboarding/pre-registration/route.jshint.js","garaje/tests/protected/onboarding/route.jshint.js","garaje/tests/protected/onboarding/video/route.jshint.js","garaje/tests/router.jshint.js","garaje/tests/routes/admin.jshint.js","garaje/tests/routes/application.jshint.js","garaje/tests/routes/badge-edit.jshint.js","garaje/tests/routes/badge-enable.jshint.js","garaje/tests/routes/badge.jshint.js","garaje/tests/routes/billing/index.jshint.js","garaje/tests/routes/billing.jshint.js","garaje/tests/routes/dashboard.jshint.js","garaje/tests/routes/devices/index.jshint.js","garaje/tests/routes/devices.jshint.js","garaje/tests/routes/entry.jshint.js","garaje/tests/routes/i18n.jshint.js","garaje/tests/routes/ipad.jshint.js","garaje/tests/routes/location.jshint.js","garaje/tests/routes/login.jshint.js","garaje/tests/routes/new-location.jshint.js","garaje/tests/routes/not-found.jshint.js","garaje/tests/routes/notifications.jshint.js","garaje/tests/routes/plans.jshint.js","garaje/tests/routes/pre-registered.jshint.js","garaje/tests/routes/pre-registration-upgrade.jshint.js","garaje/tests/routes/pre-registration.jshint.js","garaje/tests/routes/protected/index.jshint.js","garaje/tests/routes/protected.jshint.js","garaje/tests/routes/receptionist.jshint.js","garaje/tests/routes/settings/index.jshint.js","garaje/tests/routes/settings.jshint.js","garaje/tests/routes/subscribe.jshint.js","garaje/tests/serializers/application.jshint.js","garaje/tests/serializers/config.jshint.js","garaje/tests/serializers/employees-filter.jshint.js","garaje/tests/serializers/google-app.jshint.js","garaje/tests/serializers/ifttt-integration.jshint.js","garaje/tests/serializers/leaderboard.jshint.js","garaje/tests/serializers/nested.jshint.js","garaje/tests/serializers/okta-integration.jshint.js","garaje/tests/serializers/one-login.jshint.js","garaje/tests/serializers/salesforce-integration.jshint.js","garaje/tests/serializers/v2.jshint.js","garaje/tests/serializers/zapier-integration.jshint.js","garaje/tests/services/address-lookup.jshint.js","garaje/tests/services/ajax.jshint.js","garaje/tests/services/current-admin.jshint.js","garaje/tests/services/current-location.jshint.js","garaje/tests/services/google-sync-manager.jshint.js","garaje/tests/services/integrations-manager.jshint.js","garaje/tests/services/local-storage.jshint.js","garaje/tests/services/locations.jshint.js","garaje/tests/services/message-bus.jshint.js","garaje/tests/services/pubnub.jshint.js","garaje/tests/services/subscription.jshint.js","garaje/tests/services/sync-manager.jshint.js","garaje/tests/settings/integrations/controller.jshint.js","garaje/tests/settings/integrations/enabled/controller.jshint.js","garaje/tests/settings/integrations/enabled/route.jshint.js","garaje/tests/settings/integrations/google-apps-config-box/component.jshint.js","garaje/tests/settings/integrations/google-hangouts-config-box/component.jshint.js","garaje/tests/settings/integrations/hipchat-config-box/component.jshint.js","garaje/tests/settings/integrations/ifttt-config-box/component.jshint.js","garaje/tests/settings/integrations/index/route.jshint.js","garaje/tests/settings/integrations/install-box/component.jshint.js","garaje/tests/settings/integrations/integration-request/component.jshint.js","garaje/tests/settings/integrations/okta-config-box/component.jshint.js","garaje/tests/settings/integrations/one-login-config-box/component.jshint.js","garaje/tests/settings/integrations/route.jshint.js","garaje/tests/settings/integrations/salesforce-config-box/component.jshint.js","garaje/tests/settings/integrations/saml-config-box/component.jshint.js","garaje/tests/settings/integrations/slack-config-box/component.jshint.js","garaje/tests/settings/integrations/webhook-config-box/component.jshint.js","garaje/tests/settings/integrations/zapier-config-box/component.jshint.js","garaje/tests/sync-settings/all-filter/component.jshint.js","garaje/tests/sync-settings/company-filter/component.jshint.js","garaje/tests/sync-settings/controller.jshint.js","garaje/tests/sync-settings/google-apps/all-filter/component.jshint.js","garaje/tests/sync-settings/google-apps/company-filter/component.jshint.js","garaje/tests/sync-settings/google-apps/component.jshint.js","garaje/tests/sync-settings/google-apps/locations-filter/component.jshint.js","garaje/tests/sync-settings/google-apps/locations-filter/filter-input/component.jshint.js","garaje/tests/sync-settings/group-select/component.jshint.js","garaje/tests/sync-settings/locations-filter/component.jshint.js","garaje/tests/sync-settings/locations-filter/location-filter/component.jshint.js","garaje/tests/sync-settings/okta-integration/component.jshint.js","garaje/tests/sync-settings/one-login/component.jshint.js","garaje/tests/sync-settings/route.jshint.js","garaje/tests/test-helper.js","garaje/tests/test-helper.jshint.js","garaje/tests/transforms/array.jshint.js","garaje/tests/transitions.jshint.js","garaje/tests/unit/adapters/application-test.js","garaje/tests/unit/adapters/application-test.jshint.js","garaje/tests/unit/adapters/google-app-test.js","garaje/tests/unit/adapters/google-app-test.jshint.js","garaje/tests/unit/adapters/okta-integration-test.js","garaje/tests/unit/adapters/okta-integration-test.jshint.js","garaje/tests/unit/components/cc-form-test.js","garaje/tests/unit/components/cc-form-test.jshint.js","garaje/tests/unit/components/color-picker-test.js","garaje/tests/unit/components/color-picker-test.jshint.js","garaje/tests/unit/components/configurator-option-group-test.js","garaje/tests/unit/components/configurator-option-group-test.jshint.js","garaje/tests/unit/components/configurator-option-test.js","garaje/tests/unit/components/configurator-option-test.jshint.js","garaje/tests/unit/components/file-upload-test.js","garaje/tests/unit/components/file-upload-test.jshint.js","garaje/tests/unit/components/google-maps-test.js","garaje/tests/unit/components/google-maps-test.jshint.js","garaje/tests/unit/components/phone-input-test.js","garaje/tests/unit/components/phone-input-test.jshint.js","garaje/tests/unit/components/plan-button-test.js","garaje/tests/unit/components/plan-button-test.jshint.js","garaje/tests/unit/components/sign-out-dropdown-test.js","garaje/tests/unit/components/sign-out-dropdown-test.jshint.js","garaje/tests/unit/components/stand-description-test.js","garaje/tests/unit/components/stand-description-test.jshint.js","garaje/tests/unit/controllers/ipad-test.js","garaje/tests/unit/controllers/ipad-test.jshint.js","garaje/tests/unit/controllers/location-test.js","garaje/tests/unit/controllers/location-test.jshint.js","garaje/tests/unit/helpers/array-to-sentence-test.js","garaje/tests/unit/helpers/array-to-sentence-test.jshint.js","garaje/tests/unit/helpers/formatted-currency-test.js","garaje/tests/unit/helpers/formatted-currency-test.jshint.js","garaje/tests/unit/helpers/pluralized-word-test.js","garaje/tests/unit/helpers/pluralized-word-test.jshint.js","garaje/tests/unit/helpers/with-fallback-test.js","garaje/tests/unit/helpers/with-fallback-test.jshint.js","garaje/tests/unit/models/employees-filter-test.js","garaje/tests/unit/models/employees-filter-test.jshint.js","garaje/tests/unit/models/subscription-test.js","garaje/tests/unit/models/subscription-test.jshint.js","garaje/tests/unit/services/google-sync-manager-test.js","garaje/tests/unit/services/google-sync-manager-test.jshint.js","garaje/tests/unit/services/integrations-manager-test.js","garaje/tests/unit/services/integrations-manager-test.jshint.js","garaje/tests/unit/services/locations-test.js","garaje/tests/unit/services/locations-test.jshint.js","garaje/tests/unit/services/sync-manager-test.js","garaje/tests/unit/services/sync-manager-test.jshint.js","garaje/tests/unit/utils/charge-line-item-test.js","garaje/tests/unit/utils/charge-line-item-test.jshint.js","garaje/tests/unit/utils/contains-computed-test.js","garaje/tests/unit/utils/contains-computed-test.jshint.js","garaje/tests/unit/utils/discount-line-item-test.js","garaje/tests/unit/utils/discount-line-item-test.jshint.js","garaje/tests/unit/utils/flash-promise-test.js","garaje/tests/unit/utils/flash-promise-test.jshint.js","garaje/tests/unit/utils/get-hostname-test.js","garaje/tests/unit/utils/get-hostname-test.jshint.js","garaje/tests/unit/utils/location-line-item-test.js","garaje/tests/unit/utils/location-line-item-test.jshint.js","garaje/tests/unit/utils/refund-line-item-test.js","garaje/tests/unit/utils/refund-line-item-test.jshint.js","garaje/tests/unit/utils/simple-ledger-test.js","garaje/tests/unit/utils/simple-ledger-test.jshint.js","garaje/tests/unit/utils/url-builder-test.js","garaje/tests/unit/utils/url-builder-test.jshint.js","garaje/tests/utils/card-types.jshint.js","garaje/tests/utils/charge-line-item.jshint.js","garaje/tests/utils/child-window.jshint.js","garaje/tests/utils/contains-computed.jshint.js","garaje/tests/utils/discount-line-item.jshint.js","garaje/tests/utils/falsy-computed.jshint.js","garaje/tests/utils/flash-promise.jshint.js","garaje/tests/utils/flash.jshint.js","garaje/tests/utils/geocode.jshint.js","garaje/tests/utils/get-hostname.jshint.js","garaje/tests/utils/location-line-item.jshint.js","garaje/tests/utils/mapped-field.jshint.js","garaje/tests/utils/nda-text.jshint.js","garaje/tests/utils/oauth.jshint.js","garaje/tests/utils/onboarding-flash-promise.jshint.js","garaje/tests/utils/prorated-line-item.jshint.js","garaje/tests/utils/refund-line-item.jshint.js","garaje/tests/utils/search-computed.jshint.js","garaje/tests/utils/simple-ledger.jshint.js","garaje/tests/utils/toggleable.jshint.js","garaje/tests/utils/tzlookup.jshint.js","garaje/tests/utils/uploader.jshint.js","garaje/tests/utils/url-builder.jshint.js","garaje/tests/validators/local/email.jshint.js","garaje/tests/validators/local/okta-domain.jshint.js","garaje/tests/validators/local/phone-number.jshint.js","garaje/transforms/array.js","garaje/transforms/fragment-array.js","garaje/transforms/fragment.js","garaje/transitions/cross-fade.js","garaje/transitions/default.js","garaje/transitions/explode.js","garaje/transitions/fade.js","garaje/transitions/flex-grow.js","garaje/transitions/fly-to.js","garaje/transitions/move-over.js","garaje/transitions/scale.js","garaje/transitions/scroll-then.js","garaje/transitions/to-down.js","garaje/transitions/to-left.js","garaje/transitions/to-right.js","garaje/transitions/to-up.js","garaje/transitions.js","garaje/utils/card-types.js","garaje/utils/charge-line-item.js","garaje/utils/child-window.js","garaje/utils/contains-computed.js","garaje/utils/discount-line-item.js","garaje/utils/falsy-computed.js","garaje/utils/flash-promise.js","garaje/utils/flash.js","garaje/utils/geocode.js","garaje/utils/get-hostname.js","garaje/utils/location-line-item.js","garaje/utils/mapped-field.js","garaje/utils/nda-text.js","garaje/utils/oauth.js","garaje/utils/onboarding-flash-promise.js","garaje/utils/prorated-line-item.js","garaje/utils/refund-line-item.js","garaje/utils/search-computed.js","garaje/utils/simple-ledger.js","garaje/utils/toggleable.js","garaje/utils/tzlookup.js","garaje/utils/uploader.js","garaje/utils/url-builder.js","garaje/validators/local/email.js","garaje/validators/local/okta-domain.js","garaje/validators/local/phone-number.js","vendor/ember-cli/app-suffix.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["\"use strict\";\n/* jshint ignore:start */\n\n/* jshint ignore:end */\n","define('garaje/adapters/application', ['exports', 'active-model-adapter', 'garaje/config/environment', 'ember', 'ember-simple-auth/mixins/data-adapter-mixin'], function (exports, ActiveModelAdapter, config, Ember, DataAdapterMixin) {\n\n  'use strict';\n\n  exports['default'] = ActiveModelAdapter['default'].extend(DataAdapterMixin['default'], {\n    namespace: 'api/v1',\n    host: config['default'].apiHost,\n    authorizer: 'authorizer:application',\n\n    // This method is used by the store to determine if the store should\n    //  reload all records from the adapter when records are requested by\n    //  `store.findAll`.\n    //\n    //\n    shouldReloadAll: function shouldReloadAll() {\n      return true;\n    },\n\n    //\n    // 08-21-2015 | Adolfo Builes\n    // Keep default behavior for now, once we are in ED 2.0 we can\n    // re-evaluate if we want the new one\n    //\n    shouldBackgroundReloadRecord: function shouldBackgroundReloadRecord() {\n      return false;\n    },\n\n    //\n    // This is a workaround  because the following PR\n    // https://github.com/emberjs/data/pull/3194/files\n    // changed the way in which errors are represented internally.\n    // So we need to put them in json-api format.\n    //\n    parseErrorResponse: function parseErrorResponse(responseText) {\n      var errors = this._super.call(this, responseText);\n\n      if (errors) {\n        if (Ember['default'].isArray(errors.error)) {\n          // error is an array, join them\n          errors = {\n            errors: errors.error\n          };\n        } else if (typeof errors.error === 'string') {\n          errors = {\n            errors: [errors.error]\n          };\n        }\n      }\n\n      return errors;\n    }\n  });\n\n});","define('garaje/adapters/employees-filter', ['exports', 'garaje/adapters/v2'], function (exports, V2Adapter) {\n\n\t'use strict';\n\n\texports['default'] = V2Adapter['default'].extend({});\n\n});","define('garaje/adapters/entry', ['exports', 'garaje/adapters/application'], function (exports, ApplicationAdapter) {\n\n\t'use strict';\n\n\texports['default'] = ApplicationAdapter['default'].extend({});\n\n});","define('garaje/adapters/google-app', ['exports', 'garaje/adapters/v2'], function (exports, V2Adapter) {\n\n  'use strict';\n\n  exports['default'] = V2Adapter['default'].extend({\n    namespace: 'api/v2/integrations'\n  });\n\n});","define('garaje/adapters/ifttt-integration', ['exports', 'garaje/adapters/v2'], function (exports, V2Adapter) {\n\n  'use strict';\n\n  exports['default'] = V2Adapter['default'].extend({\n    namespace: 'api/v2/integrations'\n  });\n\n});","define('garaje/adapters/invite', ['exports', 'garaje/adapters/application'], function (exports, ApplicationAdapter) {\n\n\t'use strict';\n\n\texports['default'] = ApplicationAdapter['default'].extend({});\n\n});","define('garaje/adapters/leaderboard', ['exports', 'garaje/adapters/v2'], function (exports, V2Adapter) {\n\n  'use strict';\n\n  exports['default'] = V2Adapter['default'].extend({\n    namespace: 'api/v2/analytics'\n  });\n\n});","define('garaje/adapters/okta-integration', ['exports', 'garaje/adapters/v2'], function (exports, V2Adapter) {\n\n  'use strict';\n\n  exports['default'] = V2Adapter['default'].extend({\n    namespace: 'api/v2/integrations',\n\n    pathForType: function pathForType() {\n      return 'okta';\n    }\n  });\n\n});","define('garaje/adapters/one-login', ['exports', 'garaje/adapters/v2'], function (exports, V2Adapter) {\n\n  'use strict';\n\n  exports['default'] = V2Adapter['default'].extend({\n    namespace: 'api/v2/integrations'\n  });\n\n});","define('garaje/adapters/salesforce-integration', ['exports', 'garaje/adapters/v2'], function (exports, V2Adapter) {\n\n  'use strict';\n\n  exports['default'] = V2Adapter['default'].extend({\n    namespace: 'api/v2/integrations'\n  });\n\n});","define('garaje/adapters/v2', ['exports', 'ember-data', 'garaje/config/environment', 'ember-simple-auth/mixins/data-adapter-mixin'], function (exports, DS, config, DataAdapterMixin) {\n\n  'use strict';\n\n  var JSONAPIAdapter = DS['default'].JSONAPIAdapter;\n\n  exports['default'] = JSONAPIAdapter.extend(DataAdapterMixin['default'], {\n    namespace: 'api/v2',\n    host: config['default'].apiHost,\n    authorizer: 'authorizer:application',\n\n    shouldReloadAll: function shouldReloadAll() {\n      return true;\n    },\n    shouldBackgroundReloadRecord: function shouldBackgroundReloadRecord() {\n      return false;\n    }\n  });\n\n});","define('garaje/adapters/zapier-integration', ['exports', 'garaje/adapters/v2'], function (exports, V2Adapter) {\n\n  'use strict';\n\n  exports['default'] = V2Adapter['default'].extend({\n    namespace: 'api/v2/integrations'\n  });\n\n});","define('garaje/analytics/controller', ['exports', 'ember', 'garaje/utils/url-builder', 'moment'], function (exports, Ember, urlBuilder, moment) {\n\n  'use strict';\n\n  var endOfToday = moment['default']().endOf('day');\n  var startThirtyDaysAgo = moment['default']().startOf('day').subtract(30, 'days');\n  var endThirtyDaysAgo = moment['default']().endOf('day').subtract(30, 'days');\n  var startSixtyDaysAgo = moment['default']().startOf('day').subtract(60, 'days');\n\n  exports['default'] = Ember['default'].Controller.extend({\n    currentLocation: Ember['default'].inject.service(),\n    locationController: Ember['default'].inject.controller('location'),\n    ajax: Ember['default'].inject.service(),\n    subscription: Ember['default'].inject.service(),\n\n    date: moment['default']().format('YYYY-MM-DD'),\n\n    startTime: startThirtyDaysAgo,\n    endTime: endOfToday,\n\n    preZoomStartTime: startThirtyDaysAgo,\n    preZoomEndTime: endOfToday,\n\n    shouldSetResetZoom: true,\n\n    isHours: Ember['default'].computed.equal('granularityThreshold', 'hours'),\n\n    hourData: [],\n    dayData: [],\n\n    hourBuckets: [],\n    weekBuckets: [],\n\n    entriesCsvUrl: Ember['default'].computed('startTime', 'endTime', {\n      get: function get() {\n        var _getProperties = this.getProperties('startTime', 'endTime');\n\n        var startTime = _getProperties.startTime;\n        var endTime = _getProperties.endTime;\n\n        return urlBuilder['default'].entriesCsvUrl(startTime.format('YYYY-MM-DD'), endTime.format('YYYY-MM-DD'));\n      }\n    }).readOnly(),\n\n    location: Ember['default'].computed.alias('locationController.model'),\n\n    preRegistrationEnabled: Ember['default'].computed.alias('currentLocation.preRegistrationEnabled'),\n\n    thisMonthActive: Ember['default'].computed('startTime', 'endTime', function () {\n      return this.get('startTime').isSame(startThirtyDaysAgo) && this.get('endTime').isSame(endOfToday);\n    }),\n\n    lastMonthActive: Ember['default'].computed('startTime', 'endTime', function () {\n      return this.get('startTime').isSame(startSixtyDaysAgo) && this.get('endTime').startOf('day').isSame(endThirtyDaysAgo);\n    }),\n\n    currentData: Ember['default'].computed('granularityThreshold', 'hourData.[]', 'dayData.[]', function () {\n      var granularityThreshold = this.get('granularityThreshold');\n\n      if (granularityThreshold === 'hours') {\n        return this.get('hourData');\n      } else {\n        return this.get('dayData');\n      }\n    }),\n\n    granularityThreshold: Ember['default'].computed('startTime', 'endTime', function () {\n      var startTime = this.get('startTime');\n      var endTime = this.get('endTime');\n      var duration = moment['default'].duration(endTime.diff(startTime)).asHours();\n\n      if (duration < 288) {\n        return 'hours';\n      } else if (duration < 2016) {\n        return 'days';\n      } else {\n        return 'weeks';\n      }\n    }),\n\n    entriesByHour: Ember['default'].computed('preZoomStartTime', 'preZoomEndTime', 'location', function () {\n      var _this = this;\n\n      var startTime = this.get('preZoomStartTime').toISOString();\n      var endTime = this.get('preZoomEndTime').toISOString();\n      var locationId = this.get('location.id') || this.get('currentLocation.id');\n\n      this.get('ajax').request(urlBuilder['default'].analyticsUrl('entries_by_hour'), {\n        data: { start_time: startTime, end_time: endTime, location_id: locationId }\n      }).then(function (result) {\n        var array = Object.keys(result).map(function (key) {\n          var momentTime = moment['default'].utc(key);\n          return { x: momentTime, y: result[key] };\n        });\n        _this.set('hourData', array);\n      })['catch'](function (error) {\n        console.log('Error:');\n        console.log(error);\n      });\n    }),\n\n    entriesByDay: Ember['default'].computed('preZoomStartTime', 'preZoomEndTime', 'location', function () {\n      var _this2 = this;\n\n      var startTime = this.get('preZoomStartTime').toISOString();\n      var endTime = this.get('preZoomEndTime').toISOString();\n      var locationId = this.get('location.id') || this.get('currentLocation.id');\n\n      this.get('ajax').request(urlBuilder['default'].analyticsUrl('entries_by_day'), {\n        data: { start_time: startTime, end_time: endTime, location_id: locationId }\n      }).then(function (result) {\n        var array = Object.keys(result).map(function (key) {\n          var momentTime = moment['default'].utc(key);\n          return { x: momentTime, y: result[key] };\n        });\n        _this2.set('dayData', array);\n      })['catch'](function (error) {\n        console.log('Error:');\n        console.log(error);\n      });\n    }),\n\n    scopedData: Ember['default'].computed('hourData.[]', 'dayData.[]', 'endTime', 'startTime', function () {\n      var _this3 = this;\n\n      //replace this super ugly code with solid ember implementation of groupBy\n      var scopedHourlyData = this.get('hourData').filter(function (d) {\n        return d.x >= _this3.get('startTime') && d.x <= _this3.get('endTime');\n      });\n      var scopedDayData = this.get('dayData').filter(function (d) {\n        return d.x >= _this3.get('startTime') && d.x <= _this3.get('endTime');\n      });\n\n      var weekBuckets = [[], [], [], [], [], [], []];\n      var hourBuckets = [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []];\n\n      scopedHourlyData.forEach(function (item) {\n        var hourOfDay = item.x.local().format('H');\n        hourBuckets[hourOfDay].push(item);\n      });\n\n      scopedDayData.forEach(function (item) {\n        var dayOfWeek = item.x.local().format('d');\n        weekBuckets[dayOfWeek].push(item);\n      });\n\n      this.setProperties({\n        weekBuckets: weekBuckets,\n        hourBuckets: hourBuckets\n      });\n    }),\n\n    _setResetZoom: Ember['default'].observer('startTime', 'endTime', function () {\n      if (this.get('shouldSetResetZoom')) {\n        this.setProperties({\n          preZoomStartTime: this.get('startTime'),\n          preZoomEndTime: this.get('endTime')\n        });\n      }\n    }),\n\n    averageVisitorsPerDayOfWeek: Ember['default'].computed('weekBuckets.[]', function () {\n      var dayOfWeekData = [];\n      //replace this super ugly code with solid ember implementation of groupBy\n\n      this.get('weekBuckets').forEach(function (bucket, index) {\n        var avg = undefined;\n        if (bucket.length > 0) {\n          var sum = bucket.mapBy('y').reduce(function (prev, item) {\n            return prev + item;\n          });\n          avg = (sum / bucket.length).toFixed(2);\n        } else {\n          avg = bucket.y || 0;\n        }\n        var object = { x: index, y: avg };\n        dayOfWeekData.push(object);\n      });\n\n      return dayOfWeekData;\n    }),\n\n    averageVisitorsPerTimeOfDay: Ember['default'].computed('hourBuckets.[]', function () {\n      var hourData = [];\n      //replace this super ugly code with solid ember implementation of groupBy\n\n      this.get('hourBuckets').forEach(function (bucket, index) {\n        var avg = undefined;\n        if (bucket.length > 0) {\n          var sum = bucket.mapBy('y').reduce(function (prev, item) {\n            return prev + item;\n          });\n          avg = (sum / bucket.length).toFixed(2);\n        } else {\n          avg = bucket.y || 0;\n        }\n        var object = { x: index, y: avg };\n        hourData.push(object);\n      });\n\n      return hourData;\n    }),\n\n    hasEntryData: Ember['default'].computed('hourBuckets.[]', function () {\n      var array = [];\n\n      this.get('hourBuckets').forEach(function (bucket) {\n        if (bucket.length > 0) {\n          var sum = bucket.mapBy('y').reduce(function (prev, item) {\n            return prev + item;\n          });\n          array.push(sum);\n        }\n      });\n\n      var total = 0;\n\n      if (array.length > 0) {\n        total = array.reduce(function (prev, item) {\n          return prev + item;\n        });\n      }\n\n      var hasEntryData = total > 0;\n\n      return hasEntryData;\n    }),\n\n    actions: {\n      setTimeParams: function setTimeParams(start, end) {\n        //don't reset zoom params when manually zooming in\n        this.set('shouldSetResetZoom', false);\n\n        Ember['default'].run.later(this, function () {\n          this.setProperties({\n            startTime: moment['default'](start),\n            endTime: moment['default'](end)\n          });\n        });\n\n        Ember['default'].run.later(this, function () {\n          this.set('shouldSetResetZoom', true);\n        });\n      },\n\n      setThisMonth: function setThisMonth() {\n        this.setProperties({\n          startTime: startThirtyDaysAgo,\n          endTime: endOfToday\n        });\n      },\n\n      setLastMonth: function setLastMonth() {\n        this.setProperties({\n          startTime: startSixtyDaysAgo,\n          endTime: endThirtyDaysAgo\n        });\n      },\n\n      resetZoom: function resetZoom() {\n        this.setProperties({\n          startTime: this.get('preZoomStartTime'),\n          endTime: this.get('preZoomEndTime')\n        });\n      }\n    }\n  });\n\n});","define('garaje/analytics/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    currentLocation: Ember['default'].inject.service(),\n\n    model: function model(params) {\n      params.location_id = this.get('currentLocation.id');\n      return this.store.query('leaderboard', params);\n    },\n\n    renderTemplate: function renderTemplate() {\n      this._super();\n      this.render('dashboard/_nav', {\n        outlet: 'subnav'\n      });\n    }\n  });\n\n});","define('garaje/analytics/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 55,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 57,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/analytics/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"text\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"moment-format\",[[\"get\",\"tick.value\",[\"loc\",[null,[56,34],[56,44]]]],\"ddd\",\"E\"],[],[\"loc\",[null,[56,18],[56,56]]]]\n          ],\n          locals: [\"tick\"],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 59,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 61,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/analytics/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"text\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"tick.value\",[\"loc\",[null,[60,18],[60,32]]]]\n          ],\n          locals: [\"tick\"],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 63,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 70,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/analytics/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"nf-bars\",[],[\"data\",[\"subexpr\",\"@mut\",[[\"get\",\"averageVisitorsPerDayOfWeek\",[\"loc\",[null,[66,19],[66,46]]]]],[],[]],\"barWidth\",18,\"barClass\",\"barz\"],[\"loc\",[null,[65,12],[68,31]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 42,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 71,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/analytics/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          morphs[2] = dom.createMorphAt(fragment,5,5,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"nf-x-axis\",[],[\"useTemplate\",true,\"tickCount\",7],0,null,[\"loc\",[null,[55,10],[57,24]]]],\n          [\"block\",\"nf-y-axis\",[],[\"tickCount\",8],1,null,[\"loc\",[null,[59,10],[61,24]]]],\n          [\"block\",\"nf-graph-content\",[],[],2,null,[\"loc\",[null,[63,10],[70,31]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 73,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 75,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/analytics/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"style\",\"position:absolute;top:50%;text-align:center;display:block;width:100%;opacity:.66\");\n          var el2 = dom.createTextNode(\"No data to display.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 100,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 102,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/analytics/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"text\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"tick.value\",[\"loc\",[null,[101,18],[101,32]]]]\n          ],\n          locals: [\"tick\"],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 104,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 106,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/analytics/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"text\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"tick.value\",[\"loc\",[null,[105,18],[105,32]]]]\n          ],\n          locals: [\"tick\"],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 108,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 114,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/analytics/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"nf-area\",[],[\"data\",[\"subexpr\",\"@mut\",[[\"get\",\"averageVisitorsPerTimeOfDay\",[\"loc\",[null,[111,19],[111,46]]]]],[],[]],\"interpolator\",\"step\"],[\"loc\",[null,[110,12],[112,35]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 87,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 115,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/analytics/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          morphs[2] = dom.createMorphAt(fragment,5,5,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"nf-x-axis\",[],[\"tickCount\",24],0,null,[\"loc\",[null,[100,10],[102,24]]]],\n          [\"block\",\"nf-y-axis\",[],[\"tickCount\",6],1,null,[\"loc\",[null,[104,10],[106,24]]]],\n          [\"block\",\"nf-graph-content\",[],[],2,null,[\"loc\",[null,[108,10],[114,31]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 117,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 119,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/analytics/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"style\",\"position:absolute;top:50%;text-align:center;display:block;width:100%;opacity:.5\");\n          var el2 = dom.createTextNode(\"No data to display.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 146,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 148,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/analytics/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 2,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"leaderboard-card\",[],[\"leader\",[\"subexpr\",\"@mut\",[[\"get\",\"leader\",[\"loc\",[null,[147,32],[147,38]]]]],[],[]],\"index\",[\"subexpr\",\"@mut\",[[\"get\",\"i\",[\"loc\",[null,[147,45],[147,46]]]]],[],[]]],[\"loc\",[null,[147,6],[147,48]]]]\n        ],\n        locals: [\"leader\",\"i\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 151,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/analytics/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"mt3 mb3 js-analytics-header\");\n        var el3 = dom.createTextNode(\"Analytics\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"nav\");\n        dom.setAttribute(el2,\"class\",\"flex flex-center\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        var el4 = dom.createTextNode(\"Last 30 Days\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        var el4 = dom.createTextNode(\"Last 30-60 days\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        dom.setAttribute(el3,\"class\",\"btn btn--small ml1\");\n        var el4 = dom.createTextNode(\"Export CSV for this range\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"flex-auto\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        dom.setAttribute(el3,\"class\",\"btn btn--small btn--hoverFill u-right js-reset-zoom\");\n        var el4 = dom.createTextNode(\"Reset Zoom\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"bg-grayLightest py3 mt2 mb3\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"container px2 relative\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"flex flex-center\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h4\");\n        dom.setAttribute(el4,\"class\",\"flex-auto\");\n        var el5 = dom.createTextNode(\"Visitor History \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"span\");\n        dom.setAttribute(el5,\"class\",\"gray\");\n        dom.setAttribute(el5,\"style\",\"font-weight:400\");\n        var el6 = dom.createTextNode(\" (\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\")\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"nf-key\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"span\");\n        dom.setAttribute(el5,\"class\",\"blueOutline\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        Visitors\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"clearfix mt4\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 relative\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex flex-center\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        dom.setAttribute(el6,\"class\",\"flex-auto\");\n        var el7 = dom.createTextNode(\"Day of Week Average\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"nf-key\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"span\");\n        dom.setAttribute(el7,\"class\",\"bg-blue\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            Visitors\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col-7 right relative\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex flex-center\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        dom.setAttribute(el6,\"class\",\"flex-auto\");\n        var el7 = dom.createTextNode(\"Time of Day Average\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"nf-key\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"span\");\n        dom.setAttribute(el7,\"class\",\"blueOutline\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            Visitors\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2 js-leaderboard-container\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h4\");\n        dom.setAttribute(el2,\"class\",\"mt4 mb3\");\n        var el3 = dom.createTextNode(\"Most Visited Employees \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"gray\");\n        dom.setAttribute(el3,\"style\",\"font-weight:400\");\n        var el4 = dom.createTextNode(\"(all time)\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"table h5\");\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"table-row grayDark\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"table-cell border-bottom bg-grayLightest px1 py2\");\n        var el5 = dom.createTextNode(\"Rank\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"table-cell border-bottom bg-grayLightest p2\");\n        var el5 = dom.createTextNode(\"Employee Name\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"table-cell border-bottom bg-grayLightest p2 right-align\");\n        var el5 = dom.createTextNode(\"Total Visitors\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 3]);\n        var element1 = dom.childAt(element0, [3]);\n        var element2 = dom.childAt(element0, [5]);\n        var element3 = dom.childAt(element0, [7]);\n        var element4 = dom.childAt(element0, [11]);\n        var element5 = dom.childAt(fragment, [2, 1]);\n        var element6 = dom.childAt(element5, [5]);\n        var element7 = dom.childAt(element6, [1]);\n        var element8 = dom.childAt(element6, [3]);\n        var morphs = new Array(17);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createAttrMorph(element1, 'class');\n        morphs[2] = dom.createElementMorph(element1);\n        morphs[3] = dom.createAttrMorph(element2, 'class');\n        morphs[4] = dom.createElementMorph(element2);\n        morphs[5] = dom.createAttrMorph(element3, 'href');\n        morphs[6] = dom.createElementMorph(element4);\n        morphs[7] = dom.createMorphAt(dom.childAt(element5, [1, 1, 1]),1,1);\n        morphs[8] = dom.createMorphAt(element5,3,3);\n        morphs[9] = dom.createMorphAt(element7,3,3);\n        morphs[10] = dom.createMorphAt(element7,5,5);\n        morphs[11] = dom.createMorphAt(element8,3,3);\n        morphs[12] = dom.createMorphAt(element8,5,5);\n        morphs[13] = dom.createMorphAt(element6,5,5);\n        morphs[14] = dom.createMorphAt(element6,7,7);\n        morphs[15] = dom.createMorphAt(element6,9,9);\n        morphs[16] = dom.createMorphAt(dom.childAt(fragment, [5, 3]),3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"envoy-2up-calendar\",[],[\"date\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedDate\",[\"loc\",[null,[5,30],[5,42]]]]],[],[]],\"startDate\",[\"subexpr\",\"@mut\",[[\"get\",\"startTime\",[\"loc\",[null,[5,53],[5,62]]]]],[],[]],\"endDate\",[\"subexpr\",\"@mut\",[[\"get\",\"endTime\",[\"loc\",[null,[5,71],[5,78]]]]],[],[]]],[\"loc\",[null,[5,4],[5,80]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"btn btn--small btn--blueOutlineFill ml2 \",[\"subexpr\",\"if\",[[\"get\",\"thisMonthActive\",[\"loc\",[null,[6,85],[6,100]]]],\"active\"],[],[\"loc\",[null,[6,80],[6,111]]]],\" js-last-30-days\"]]],\n        [\"element\",\"action\",[\"setThisMonth\"],[],[\"loc\",[null,[6,7],[6,32]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"btn btn--small btn--blueOutlineFill ml1 \",[\"subexpr\",\"if\",[[\"get\",\"lastMonthActive\",[\"loc\",[null,[7,85],[7,100]]]],\"active\"],[],[\"loc\",[null,[7,80],[7,111]]]],\" js-last-30-to-60-days\"]]],\n        [\"element\",\"action\",[\"setLastMonth\"],[],[\"loc\",[null,[7,7],[7,32]]]],\n        [\"attribute\",\"href\",[\"get\",\"entriesCsvUrl\",[\"loc\",[null,[8,14],[8,27]]]]],\n        [\"element\",\"action\",[\"resetZoom\"],[],[\"loc\",[null,[10,7],[10,29]]]],\n        [\"content\",\"granularityThreshold\",[\"loc\",[null,[17,89],[17,113]]]],\n        [\"inline\",\"brush-select-zoom\",[],[\"overlayEnabled\",[\"subexpr\",\"@mut\",[[\"get\",\"overlayEnabled\",[\"loc\",[null,[24,19],[24,33]]]]],[],[]],\"startTime\",[\"subexpr\",\"@mut\",[[\"get\",\"startTime\",[\"loc\",[null,[25,14],[25,23]]]]],[],[]],\"endTime\",[\"subexpr\",\"@mut\",[[\"get\",\"endTime\",[\"loc\",[null,[26,12],[26,19]]]]],[],[]],\"realData\",[\"subexpr\",\"@mut\",[[\"get\",\"currentData\",[\"loc\",[null,[27,13],[27,24]]]]],[],[]],\"setTimeParams\",\"setTimeParams\",\"isHours\",[\"subexpr\",\"@mut\",[[\"get\",\"isHours\",[\"loc\",[null,[29,12],[29,19]]]]],[],[]],\"hasEntryData\",[\"subexpr\",\"@mut\",[[\"get\",\"hasEntryData\",[\"loc\",[null,[30,17],[30,29]]]]],[],[]]],[\"loc\",[null,[23,4],[30,31]]]],\n        [\"block\",\"nf-graph\",[],[\"xScaleType\",\"ordinal\",\"yMaxMode\",\"auto-nice\",\"yMin\",0,\"width\",336,\"height\",206,\"showFrets\",false,\"showLanes\",true,\"paddingTop\",10,\"paddingLeft\",-12,\"paddingRight\",0,\"class\",\"js-day-of-week-average\"],0,null,[\"loc\",[null,[42,8],[71,21]]]],\n        [\"block\",\"unless\",[[\"get\",\"hasEntryData\",[\"loc\",[null,[73,18],[73,30]]]]],[],1,null,[\"loc\",[null,[73,8],[75,19]]]],\n        [\"block\",\"nf-graph\",[],[\"yMaxMode\",\"auto-nice\",\"yMin\",0,\"selected\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine\",[\"loc\",[null,[90,19],[90,31]]]]],[],[]],\"width\",631,\"height\",206,\"showFrets\",false,\"showLanes\",true,\"paddingTop\",10,\"paddingLeft\",-12,\"paddingRight\",20,\"class\",\"js-time-of-day-average\"],2,null,[\"loc\",[null,[87,8],[115,21]]]],\n        [\"block\",\"unless\",[[\"get\",\"hasEntryData\",[\"loc\",[null,[117,18],[117,30]]]]],[],3,null,[\"loc\",[null,[117,8],[119,19]]]],\n        [\"content\",\"scopedData\",[\"loc\",[null,[122,6],[122,20]]]],\n        [\"content\",\"entriesByHour\",[\"loc\",[null,[123,6],[123,23]]]],\n        [\"content\",\"entriesByDay\",[\"loc\",[null,[124,6],[124,22]]]],\n        [\"block\",\"each\",[[\"get\",\"model\",[\"loc\",[null,[146,12],[146,17]]]]],[],4,null,[\"loc\",[null,[146,4],[148,13]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4]\n    };\n  }()));\n\n});","define('garaje/app', ['exports', 'ember', 'ember-resolver', 'ember/load-initializers', 'garaje/config/environment'], function (exports, Ember, Resolver, loadInitializers, config) {\n\n  'use strict';\n\n  Ember['default'].MODEL_FACTORY_INJECTIONS = true;\n\n  var App = Ember['default'].Application.extend({\n    modulePrefix: config['default'].modulePrefix,\n    Resolver: Resolver['default']\n  });\n\n  loadInitializers['default'](App, config['default'].modulePrefix);\n  App.initializer(ivy.codemirror.initializer);\n\n  exports['default'] = App;\n\n});","define('garaje/authenticators/application', ['exports', 'ember-simple-auth/authenticators/oauth2-password-grant', 'garaje/config/environment'], function (exports, OAuth2PasswordGrantAuthenticator, config) {\n\n  'use strict';\n\n  exports['default'] = OAuth2PasswordGrantAuthenticator['default'].extend({\n    serverTokenEndpoint: config['default'].envoyHost + '/oauth/token'\n  });\n\n});","define('garaje/authorizers/application', ['exports', 'garaje/authorizers/oauth2-access-token', 'ember-simple-auth/authorizers/oauth2-bearer'], function (exports, GarajeAuthorizer, OAuth2Bearer) {\n\n  'use strict';\n\n  var Authorizer = OAuth2Bearer['default'];\n\n  if (window.isIE9) {\n    Authorizer = GarajeAuthorizer['default'];\n  }\n\n  exports['default'] = Authorizer.extend({});\n\n});","define('garaje/authorizers/oauth2-access-token', ['exports', 'ember-simple-auth/authorizers/base', 'ember'], function (exports, Base, Ember) {\n\n  'use strict';\n\n  exports['default'] = Base['default'].extend({\n    session: Ember['default'].inject.service(),\n    /**\n      Authorizes an XHR request by sending the `access_token` property from the\n      session as a bearer token in the Form-Encoded Body Parameter or\n      URI Query Parameter:\n       ```\n      POST /resource HTTP/1.1\n      Host: server.example.com\n      Content-Type: application/x-www-form-urlencoded\n       access_token=mF_9.B5f-4.1JqM\n      ```\n       ```\n      GET /resource?access_token=mF_9.B5f-4.1JqM HTTP/1.1\n      Host: server.example.com\n      ```\n       @method authorize\n      @param {jqXHR} jqXHR The XHR request to authorize (see http://api.jquery.com/jQuery.ajax/#jqXHR)\n      @param {Object} requestOptions The options as provided to the `$.ajax` method (see http://api.jquery.com/jQuery.ajaxPrefilter/)\n    */\n    authorize: function authorize(jqXHR, requestOptions) {\n      var accessToken = this.get('session.data.authenticated.access_token');\n      if (this.get('session.isAuthenticated') && !Ember['default'].isEmpty(accessToken)) {\n        var data = requestOptions.data;\n        var isJSON = requestOptions.contentType && requestOptions.contentType.indexOf('application/json') > -1;\n\n        if (data === undefined) {\n          data = {};\n        } else if (typeof data.append === 'function') {\n          // FormData\n          data.append('access_token', accessToken);\n          return;\n        } else if (isJSON) {\n          data = JSON.parse(data);\n        } else {\n          data = deparam(data);\n        }\n\n        data = Ember['default'].$.extend(data, { access_token: accessToken });\n\n        if (isJSON) {\n          requestOptions.data = JSON.stringify(data);\n        } else {\n          requestOptions.data = Ember['default'].$.param(data);\n        }\n      }\n    }\n  });\n\n});","define('garaje/components/add-employee-table-row', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'tr',\n    classNames: ['add-employee'],\n\n    isFirstChild: Ember['default'].computed.equal('index', 0),\n\n    showError: Ember['default'].computed.and('hasError', 'isFirstChild')\n  });\n\n});","define('garaje/components/address-input', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].TextField.extend({\n    installAutocomplete: Ember['default'].on('didInsertElement', function () {\n      var _this = this;\n\n      if (!window.google) {\n        return;\n      }\n\n      this.autocomplete = new google.maps.places.Autocomplete(this.element, { types: ['geocode'] });\n\n      google.maps.event.addListener(this.autocomplete, 'place_changed', function () {\n        Ember['default'].run(_this, 'set', 'value', _this.element.value);\n        _this.sendAction('on-select');\n      });\n    }),\n\n    willDestroy: function willDestroy() {\n      if (this.autocomplete) {\n        this.autocomplete.unbindAll();\n      }\n    },\n\n    click: function click() {\n      this.$().select();\n    }\n  });\n\n});","define('garaje/components/admin-config/component', ['exports', 'ember', 'garaje/utils/flash-promise', 'ember-validations'], function (exports, Ember, flashPromise, Validations) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Validations['default'], {\n    validated: false,\n    currentLocation: Ember['default'].inject.service(),\n\n    validations: {\n      'model.name': {\n        presence: true\n      },\n      'model.email': {\n        presence: true,\n        email: true\n      },\n      'model.phoneNumber': {\n        phoneNumber: '.location-adminphone'\n      }\n    },\n\n    defaultCountry: Ember['default'].computed(function () {\n      return Ember['default'].testing ? 'us' : 'auto';\n    }),\n\n    showPasswordFields: false,\n    shouldShowConfirmationError: false,\n\n    isConfirmationMatching: Ember['default'].computed('model.newPassword', 'model.newPasswordConfirmation', function () {\n      return this.get('model.newPassword') === this.get('model.newPasswordConfirmation');\n    }),\n\n    passwordDidChange: Ember['default'].observer('model.password', function () {\n      if (this.get('model.isLoaded') && this.get('model.content') && Ember['default'].isBlank(this.get('model.password'))) {\n        this.get('model').setProperties({\n          newPassword: null,\n          newPasswordConfirmation: null\n        });\n      }\n    }),\n\n    isEmailChanged: false,\n\n    isEmailUnchanged: Ember['default'].computed.not('isEmailChanged'),\n\n    isPasswordFieldShown: Ember['default'].computed('showPasswordFields', 'isEmailChanged', function () {\n      return this.get('showPasswordFields') && !this.get('isEmailChanged');\n    }),\n\n    isDirty: Ember['default'].computed.alias('model.hasDirtyAttributes'),\n\n    actions: {\n      emailDidChange: function emailDidChange() {\n        var isEmailChanged = ('email' in this.get('model.content').changedAttributes());\n        this.set('isEmailChanged', isEmailChanged);\n        if (isEmailChanged) {\n          this.send('resetPasswordEditingMode');\n        }\n      },\n\n      save: function save(callback) {\n        var _this = this;\n\n        this.set('validated', true);\n\n        var promise = this.validate()['catch'](function () {\n          return Ember['default'].RSVP.reject('Some fields are incomplete');\n        }).then(function () {\n          return _this.get('model.content').save();\n        }).then(function () {\n          return _this.attrs.transitionToRoute('location');\n        }).then(function () {\n          _this.send('resetProperties');\n        });\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      togglePasswordFields: function togglePasswordFields() {\n        this.toggleProperty('showPasswordFields');\n        Ember['default'].run.later(function () {\n          Ember['default'].$('.location-adminpassword').focus();\n        });\n      },\n\n      setPasswordConfirmation: function setPasswordConfirmation() {\n        var shouldShowConfirmationError = !Ember['default'].isBlank(this.get('model.newPasswordConfirmation')) && !this.get('isConfirmationMatching');\n        this.set('shouldShowConfirmationError', shouldShowConfirmationError);\n      },\n\n      rollback: function rollback() {\n        this.get('model.content').rollbackAttributes();\n      },\n\n      backToLocation: function backToLocation() {\n        this.send('resetProperties');\n        return true;\n      },\n\n      resetProperties: function resetProperties() {\n        this.setProperties({\n          showPasswordFields: false,\n          validated: false,\n          isEmailChanged: false\n        });\n        this.send('resetPasswordEditingMode');\n      },\n\n      resetPasswordEditingMode: function resetPasswordEditingMode() {\n        this.get('model').setProperties({\n          password: null,\n          newPassword: null,\n          newPasswordConfirmation: null\n        });\n      }\n    }\n  });\n\n});","define('garaje/components/admin-config/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 8,\n                \"column\": 34\n              },\n              \"end\": {\n                \"line\": 8,\n                \"column\": 66\n              }\n            },\n            \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"model.name\",[\"loc\",[null,[8,52],[8,66]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 8,\n                \"column\": 66\n              },\n              \"end\": {\n                \"line\": 8,\n                \"column\": 80\n              }\n            },\n            \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\" \");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 9,\n                \"column\": 37\n              },\n              \"end\": {\n                \"line\": 9,\n                \"column\": 71\n              }\n            },\n            \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"model.email\",[\"loc\",[null,[9,56],[9,71]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 9,\n                \"column\": 71\n              },\n              \"end\": {\n                \"line\": 9,\n                \"column\": 85\n              }\n            },\n            \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\" \");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child4 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 13,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 15,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[14,10],[14,109]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 15,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 17,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"link-to\",[\"Edit\",\"admin\"],[\"class\",\"btn btn--small btn--blue\"],[\"loc\",[null,[16,10],[16,69]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 12,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 18,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[13,14],[13,24]]]]],[],0,1,[\"loc\",[null,[13,8],[17,15]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child5 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 56,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 58,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.password\",[\"loc\",[null,[57,36],[57,50]]]]],[],[]],\"label\",\"Password required\",\"type\",\"password\",\"inputClass\",\"location-adminpassword\",\"autocomplete\",\"off\"],[\"loc\",[null,[57,14],[57,149]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 60,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 62,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.password\",[\"loc\",[null,[61,36],[61,50]]]]],[],[]],\"label\",\"Current password\",\"type\",\"password\",\"autofocus\",\"true\",\"inputClass\",\"location-adminpassword\",\"autocomplete\",\"off\"],[\"loc\",[null,[61,14],[61,165]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child2 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 63,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 66,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"label\");\n                var el2 = dom.createTextNode(\"Password\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"a\");\n                dom.setAttribute(el1,\"href\",\"#\");\n                dom.setAttribute(el1,\"class\",\"input location-adminpassword\");\n                var el2 = dom.createTextNode(\"Change password\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element1 = dom.childAt(fragment, [3]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element1);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"togglePasswordFields\"],[],[\"loc\",[null,[65,65],[65,98]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 62,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 67,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"isEmailUnchanged\",[\"loc\",[null,[63,20],[63,36]]]]],[],0,null,[\"loc\",[null,[63,14],[66,21]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child3 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 72,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 74,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  Passwords don't match\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 74,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 76,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  New password confirmation\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 69,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 86,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"label\");\n              dom.setAttribute(el1,\"for\",\"_passwordConfirmation\");\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"              \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [3]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              morphs[1] = dom.createAttrMorph(element0, 'class');\n              morphs[2] = dom.createMorphAt(element0,1,1);\n              morphs[3] = dom.createMorphAt(fragment,5,5,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.newPassword\",[\"loc\",[null,[70,36],[70,53]]]]],[],[]],\"label\",\"New password\",\"type\",\"password\",\"inputClass\",\"location-adminnewpassword\",\"autocomplete\",\"off\"],[\"loc\",[null,[70,14],[70,150]]]],\n              [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"shouldShowConfirmationError\",[\"loc\",[null,[71,60],[71,87]]]],\"error-description\"],[],[\"loc\",[null,[71,55],[71,109]]]]],\n              [\"block\",\"liquid-if\",[[\"get\",\"shouldShowConfirmationError\",[\"loc\",[null,[72,29],[72,56]]]]],[\"class\",\"js-password\"],0,1,[\"loc\",[null,[72,16],[76,30]]]],\n              [\"inline\",\"input\",[],[\"type\",\"password\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.newPasswordConfirmation\",[\"loc\",[null,[80,20],[80,49]]]]],[],[]],\"id\",\"_passwordConfirmation\",\"autocomplete\",\"off\",\"focus-out\",\"setPasswordConfirmation\",\"class\",[\"subexpr\",\"concat\",[\"location-adminnewpasswordconfirmation\",\" \",[\"subexpr\",\"if\",[[\"get\",\"shouldShowConfirmationError\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[78,14],[85,16]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 21,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 90,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"col col-6\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"form\");\n            dom.setAttribute(el3,\"autocomplete\",\"off\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element2 = dom.childAt(fragment, [1, 1, 1]);\n            var morphs = new Array(6);\n            morphs[0] = dom.createMorphAt(element2,1,1);\n            morphs[1] = dom.createMorphAt(element2,3,3);\n            morphs[2] = dom.createMorphAt(element2,5,5);\n            morphs[3] = dom.createMorphAt(element2,7,7);\n            morphs[4] = dom.createMorphAt(element2,9,9);\n            morphs[5] = dom.createMorphAt(element2,11,11);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.name\",[\"loc\",[null,[26,20],[26,30]]]]],[],[]],\"label\",\"Full Name\",\"inputClass\",\"location-adminname\",\"autocomplete\",\"off\",\"autofocus\",\"true\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.name\",[\"loc\",[null,[31,24],[31,41]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[32,24],[32,33]]]]],[],[]]],[\"loc\",[null,[25,12],[33,14]]]],\n            [\"inline\",\"email-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.email\",[\"loc\",[null,[36,20],[36,31]]]]],[],[]],\"label\",\"Email Address\",\"inputClass\",\"location-adminemail\",\"autocomplete\",\"off\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.email\",[\"loc\",[null,[40,24],[40,42]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[41,24],[41,33]]]]],[],[]],\"domain\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.domain\",[\"loc\",[null,[42,21],[42,43]]]]],[],[]],\"action\",\"emailDidChange\"],[\"loc\",[null,[35,12],[44,14]]]],\n            [\"inline\",\"phone-input\",[],[\"inputClass\",\"location-adminphone\",\"phoneNumber\",[\"subexpr\",\"@mut\",[[\"get\",\"model.phoneNumber\",[\"loc\",[null,[48,26],[48,43]]]]],[],[]],\"label\",\"Mobile Number\",\"autocomplete\",\"off\",\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[51,24],[51,33]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.phoneNumber\",[\"loc\",[null,[52,24],[52,48]]]]],[],[]],\"defaultCountry\",[\"subexpr\",\"@mut\",[[\"get\",\"defaultCountry\",[\"loc\",[null,[53,29],[53,43]]]]],[],[]]],[\"loc\",[null,[46,12],[54,14]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"isEmailChanged\",[\"loc\",[null,[56,25],[56,39]]]]],[\"class\",\"columns js-password\"],0,null,[\"loc\",[null,[56,12],[58,26]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"isPasswordFieldShown\",[\"loc\",[null,[60,25],[60,45]]]]],[\"class\",\"columns js-password\"],1,2,[\"loc\",[null,[60,12],[67,26]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"isPasswordFieldShown\",[\"loc\",[null,[69,25],[69,45]]]]],[\"class\",\"columns js-password\"],3,null,[\"loc\",[null,[69,12],[86,26]]]]\n          ],\n          locals: [],\n          templates: [child0, child1, child2, child3]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 92,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 flex flex-column js-location-admin\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex flex-center\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px;overflow:hidden;\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          dom.setAttribute(el4,\"class\",\"js-admin-name\");\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0 js-admin-email\");\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element3 = dom.childAt(fragment, [1]);\n          var element4 = dom.childAt(element3, [1]);\n          var element5 = dom.childAt(element4, [3]);\n          var morphs = new Array(5);\n          morphs[0] = dom.createMorphAt(dom.childAt(element4, [1]),1,1);\n          morphs[1] = dom.createMorphAt(dom.childAt(element5, [1]),0,0);\n          morphs[2] = dom.createMorphAt(dom.childAt(element5, [3]),0,0);\n          morphs[3] = dom.createMorphAt(element4,5,5);\n          morphs[4] = dom.createMorphAt(element3,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"gravatar-image\",[],[\"email\",[\"subexpr\",\"@mut\",[[\"get\",\"model.email\",[\"loc\",[null,[5,31],[5,42]]]]],[],[]],\"altImage\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.logo.thumbUrl\",[\"loc\",[null,[5,52],[5,81]]]]],[],[]],\"class\",\"mx-auto js-admin-gravatar gravatar\"],[\"loc\",[null,[5,8],[5,126]]]],\n          [\"block\",\"if\",[[\"get\",\"model.name\",[\"loc\",[null,[8,40],[8,50]]]]],[],0,1,[\"loc\",[null,[8,34],[8,87]]]],\n          [\"block\",\"if\",[[\"get\",\"model.email\",[\"loc\",[null,[9,43],[9,54]]]]],[],2,3,[\"loc\",[null,[9,37],[9,92]]]],\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[12,33],[12,36]]]]],[],[]]],4,null,[\"loc\",[null,[12,6],[18,27]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[21,17],[21,27]]]]],[\"class\",\"js-tokenized\"],5,null,[\"loc\",[null,[21,4],[90,18]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1, child2, child3, child4, child5]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 93,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/components/admin-config/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isEditing\",[\"loc\",[null,[1,24],[1,39]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"isDirty\",[\"loc\",[null,[1,48],[1,55]]]]],[],[]],\"action\",\"backToLocation\",\"rollback\",\"rollback\"],0,null,[\"loc\",[null,[1,0],[92,18]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/components/async-button', ['exports', 'ember-cli-async-button/components/async-button'], function (exports, AsyncButtonComponent) {\n\n  'use strict';\n\n  exports['default'] = AsyncButtonComponent['default'].extend({\n    attributeBindings: ['tabindex']\n  });\n\n});","define('garaje/components/autofocus-input', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].TextField.extend({\n    focus: Ember['default'].on('didInsertElement', function () {\n      this.$().focus().select();\n    })\n  });\n\n});","define('garaje/components/avatar-image', ['exports', 'ember', 'garaje/config/environment'], function (exports, Ember, config) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'img',\n    attributeBindings: ['src'],\n    size: 100,\n    isNotFound: false,\n    defaultImage: '/assets/images/features/selfie.png',\n    altImage: null,\n\n    fallbackImage: Ember['default'].computed('altImage', 'defaultImage', function () {\n      return this.get('altImage') || this.get('defaultImage');\n    }),\n\n    classNameBindings: ['isNotFound:placeholder'],\n\n    // We don't rely on gravatar to return us a default\n    // image. We set a default image that will 404\n    // and use this handler to replace the broken images.\n    // The reason is so that we can tell if we are using\n    // the default image, vs gravatar returning to us\n    // a cached version of our default image.\n    bindErrorHandler: Ember['default'].on('didInsertElement', function () {\n      var _this = this;\n\n      if (config['default'].environment === 'test') {\n        return;\n      }\n\n      this.$().on('error', function () {\n        Ember['default'].run(_this, function () {\n          if (!this.isDestroyed) {\n            this.set('isNotFound', true);\n          }\n        });\n      });\n    }),\n\n    unbindErrorHandler: Ember['default'].on('willDestroy', function () {\n      this.$().off('error');\n    }),\n\n    src: Ember['default'].computed.alias('fallbackImage')\n  });\n\n});","define('garaje/components/box-file-picker', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    _initializeBoxSelect: Ember['default'].on('didInsertElement', function () {\n      if (Ember['default'].testing) {\n        return false;\n      }\n      var self = this,\n          boxSelect = new BoxSelect();\n\n      // Register a success callback handler\n      boxSelect.success(function (response) {\n        self.sendAction('picked', response[0]);\n      });\n\n      // Register a cancel callback handler\n      boxSelect.cancel(function () {});\n    })\n  });\n\n});","define('garaje/components/brush-select-zoom', ['exports', 'ember', 'garaje/helpers/format-hour-minute'], function (exports, Ember, format_hour_minute) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    // Domain values for right and left brush markers. These are modified\n    // when the user drags with the mouse.\n    selectLeft: undefined,\n    selectRight: undefined,\n    classNames: ['js-visitory-history-graph'],\n\n    // Graph data filtered by zoom extents. Filtered to include only data points\n    // falling within the zoom start and end dates\n    zoomData: Ember['default'].computed('realData.[]', 'startTime', 'endTime', {\n      get: function get() {\n        var _this = this;\n\n        if (this.get('realData.length') < 1) {\n          return false;\n        }\n\n        return this.get('realData').filter(function (d) {\n          return d.x >= _this.get('startTime') && d.x <= _this.get('endTime');\n        });\n      }\n    }).readOnly(),\n\n    // Formats the text shown on the brush selection markers.\n    // This is using the format code imported from helper:format-hour-minute\n    selectionDisplayFormatter: function selectionDisplayFormatter(ms) {\n      return format_hour_minute.format(ms);\n    },\n\n    actions: {\n      brushEnd: function brushEnd(e) {\n        // Now that the brush drag is finished set new\n        // zoom values for filtering the main graph data\n        var start = Ember['default'].get(e, 'left.x');\n        var end = Ember['default'].get(e, 'right.x');\n\n        this.sendAction('setTimeParams', start, end);\n      }\n    }\n  });\n\n});","define('garaje/components/calendar-grid', ['exports', 'ember', 'moment'], function (exports, Ember, moment) {\n\n  'use strict';\n\n  function filterMe(events, firstDay, lastDay) {\n    return (events || []).filter(function (e) {\n      var isBetween = e.isBetween(firstDay, lastDay);\n      return isBetween;\n    });\n  }\n\n  exports['default'] = Ember['default'].Component.extend({\n\n    weeksArray: Ember['default'].computed('currentMonth', 'events.[]', 'invites.[]', function () {\n      var firstDayOfMonth = this.get('currentMonth');\n      var firstDayOfWeek = moment['default'](firstDayOfMonth).startOf('week');\n      var lastDayOfWeek = moment['default'](firstDayOfWeek).endOf('week');\n\n      var weeks = [];\n      var snapshot;\n\n      for (var i = 0; i < 6; i++) {\n        snapshot = firstDayOfWeek.clone();\n        var snapshotMinusOne = snapshot.clone().subtract(1, 'days');\n        var lastDayOfWeekSnapshotPlusOne = lastDayOfWeek.clone().add(1, 'days');\n\n        var events = filterMe(this.get('events'), snapshotMinusOne, lastDayOfWeekSnapshotPlusOne);\n\n        var invites = filterMe(this.get('invites'), snapshotMinusOne, lastDayOfWeekSnapshotPlusOne);\n\n        weeks.push({\n          startDate: snapshot,\n          events: events,\n          invites: invites\n        });\n        firstDayOfWeek.add(1, 'week');\n        lastDayOfWeek.add(1, 'week');\n      }\n      return weeks;\n    }),\n\n    headerDays: Ember['default'].computed(function () {\n      var firstDayOfWeek = moment['default'].localeData().firstDayOfWeek();\n      var days = [];\n      var day;\n\n      for (var i = 0; i < 7; i++) {\n        day = moment['default'].weekdaysShort((firstDayOfWeek + i) % 7);\n        days.push(day);\n      }\n\n      return days;\n    }),\n\n    actions: {\n      selectDate: function selectDate(selectedDate) {\n        this.sendAction('action', selectedDate);\n      }\n    }\n  });\n\n});","define('garaje/components/cc-form', ['exports', 'ember', 'garaje/config/environment'], function (exports, Ember, config) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['cc-form'],\n    messageBus: Ember['default'].inject.service(),\n    installJqueryPayment: Ember['default'].on('didInsertElement', function () {\n      this.get('messageBus').on('createStripeToken', this, this.createToken);\n      var self = this;\n\n      var triggerValidateIfNotBlank = function triggerValidateIfNotBlank() {\n        if (!Ember['default'].isBlank(this.value)) {\n          Ember['default'].$(this).trigger('validate');\n        }\n      };\n\n      this.$('.js-cc-number').payment('formatCardNumber').on('validate', function () {\n        if (!Ember['default'].$.payment.validateCardNumber(this.value)) {\n          Ember['default'].run(self, 'set', 'cardNumberErrorMessage', 'Card Number is invalid');\n        }\n      }).on('blur', triggerValidateIfNotBlank).on('input propertychange', function (e) {\n        // ^^ input event fires when the input value has change, regardless\n        // if a character was deleted because of backspace, cut, delete;\n        // inserted if it was a keypress or paste. input is IE9+ and other\n        // other browsers only, so propertychange does the same thing on\n        // older IE.\n        setTimeout(function () {\n          var $target = Ember['default'].$(e.currentTarget);\n          var value = $target.val();\n\n          var cardType = Ember['default'].$.payment.cardType(value);\n          Ember['default'].run(self, function () {\n            self.setProperties({\n              cardNumberErrorMessage: null,\n              cardType: cardType\n            });\n          });\n        });\n      });\n\n      this.$('.js-cc-exp').payment('formatCardExpiry').on('validate', function () {\n        var date = self.get('expirationMonthYear');\n\n        var _Ember$$$payment$cardExpiryVal = Ember['default'].$.payment.cardExpiryVal(date);\n\n        var month = _Ember$$$payment$cardExpiryVal.month;\n        var year = _Ember$$$payment$cardExpiryVal.year;\n\n        if (!Ember['default'].$.payment.validateCardExpiry(month, year)) {\n          Ember['default'].run(self, 'set', 'cardExpiryErrorMessage', 'Expiry is invalid');\n        }\n      }).on('blur', triggerValidateIfNotBlank).on('input propertychange', function () {\n        Ember['default'].run(self, 'set', 'cardExpiryErrorMessage', null);\n      });\n\n      this.$('.js-cc-cvc').payment('formatCardCVC').on('validate', function () {\n        if (!Ember['default'].$.payment.validateCardCVC(this.value)) {\n          Ember['default'].run(self, 'set', 'cardCvcErrorMessage', 'Security Code is invalid');\n        }\n      }).on('blur', triggerValidateIfNotBlank).on('input propertychange', function () {\n        Ember['default'].run(self, 'set', 'cardCvcErrorMessage', null);\n      });\n    }),\n\n    willDestroy: function willDestroy() {\n      var selector = this.$('.js-cc-number, .js-cc-exp, .js-cc-cvc');\n      if (selector) {\n        selector.off();\n      }\n      this.get('messageBus').off('createStripeToken', this, this.createToken);\n      this.setProperties({\n        expirationMonth: '',\n        expirationYear: ''\n      });\n    },\n\n    isValid: Ember['default'].computed('cardNumberErrorMessage', 'cardExpiryErrorMessage', 'cardCvcErrorMessage', {\n      get: function get() {\n        var errors = [this.get('cardNumberErrorMessage'), this.get('cardExpiryErrorMessage'), this.get('cardCvcErrorMessage')];\n        return errors.compact().length === 0;\n      }\n    }).readOnly(),\n\n    //\n    // Called via this.get('messageBug').subscribe('createToken')\n    //\n    createToken: function createToken(callback) {\n      var _this = this;\n\n      Ember['default'].run(this, function () {\n        this.$('.js-cc-number, .js-cc-exp, .js-cc-cvc').trigger('validate');\n      });\n\n      if (this.get('isValid')) {\n        var form = this.$('form');\n\n        Stripe.setPublishableKey(config['default'].stripePublishableKey);\n        Stripe.card.createToken(form, function (status, response) {\n          if (status === 200) {\n            _this.sendAction('action', callback, response.id);\n          } else {\n            var field = _this.errorField(response.error.code);\n            _this.set('card' + field + 'ErrorMessage', response.error.message);\n            callback(Ember['default'].RSVP.reject());\n          }\n        });\n      } else {\n        callback(Ember['default'].RSVP.reject());\n      }\n    },\n\n    expirationMonthYear: Ember['default'].computed({\n      get: function get() {\n        return '';\n      },\n      set: function set(k, v) {\n        var date = Ember['default'].$.payment.formatExpiry(v);\n        Ember['default'].run.once(this, this._setExpirationDate, date);\n        return date;\n      }\n    }),\n\n    _setExpirationDate: function _setExpirationDate(date) {\n      var _Ember$$$payment$cardExpiryVal2 = Ember['default'].$.payment.cardExpiryVal(date);\n\n      var month = _Ember$$$payment$cardExpiryVal2.month;\n      var year = _Ember$$$payment$cardExpiryVal2.year;\n\n      this.setProperties({\n        expirationMonth: month,\n        expirationYear: year\n      });\n    },\n\n    errorField: function errorField(code) {\n      switch (code) {\n        case 'invalid_expiry_month':\n        case 'invalid_expiry_year':\n        case 'expired_card':\n          return 'Expiry';\n        case 'invalid_cvc':\n        case 'incorrect_cvc':\n          return 'Cvc';\n        default:\n          return 'Number';\n      }\n    },\n\n    actions: {\n      submitIt: function submitIt() {\n        this.sendAction('onSubmit');\n      }\n    }\n  });\n\n});","define('garaje/components/checkbox-with-action', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'input',\n    attributeBindings: ['type', 'checked', 'indeterminate', 'disabled', 'tabindex', 'name', 'autofocus', 'required', 'form'],\n\n    type: 'checkbox',\n    checked: false,\n    disabled: false,\n    indeterminate: false,\n\n    didInsertElement: function didInsertElement() {\n      this.get('element').indeterminate = !!this.get('indeterminate');\n    },\n\n    change: function change() {\n      var checked = this.$().prop('checked');\n\n      this.sendAction('action', checked);\n    }\n  });\n\n});","define('garaje/components/clearbit-image', ['exports', 'ember', 'garaje/components/avatar-image'], function (exports, Ember, AvatarImage) {\n\n  'use strict';\n\n  exports['default'] = AvatarImage['default'].extend({\n    domain: Ember['default'].computed('email', function () {\n      var email = this.get('email');\n      return email.substring(email.indexOf('@') + 1);\n    }),\n\n    src: Ember['default'].computed('domain', 'size', 'fallbackImage', 'isNotFound', function () {\n      if (this.get('isNotFound')) {\n        return this.get('fallbackImage');\n      } else {\n        var url = '//logo.clearbit.com/' + this.get('domain');\n\n        var size = this.get('size');\n        if (size) {\n          url += '?size=' + size;\n        }\n\n        return url;\n      }\n    })\n  });\n\n});","define('garaje/components/col-pick-input', ['exports', 'ember', 'ember-colpick/mixins/col-pick'], function (exports, Ember, ColPickMixin) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].TextField.extend(ColPickMixin['default'], {\n    flat: false\n  });\n\n});","define('garaje/components/col-pick', ['exports', 'ember', 'ember-colpick/mixins/col-pick'], function (exports, Ember, ColPickMixin) {\n\n\t'use strict';\n\n\texports['default'] = Ember['default'].Component.extend(ColPickMixin['default']);\n\n});","define('garaje/components/color-picker', ['exports', 'ember', 'ember-colpick/mixins/col-pick', 'garaje/mixins/col-pick-on-change'], function (exports, Ember, ColPickMixin, ColPickOnChange) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(ColPickMixin['default'], ColPickOnChange['default'], {\n    attributeBindings: ['style', 'tabindex'],\n    flat: false,\n    colorScheme: 'light',\n\n    style: Ember['default'].computed('cssColor', function () {\n      var cssColor = this.get('cssColor');\n      return cssColor ? 'width:200px;background:' + cssColor : '';\n    }),\n\n    keyPress: function keyPress() {\n      this.$().click();\n    },\n\n    value: Ember['default'].computed('cssColor', {\n      get: function get() {\n        var cssColor = this.get('cssColor');\n        return cssColor ? cssColor.replace(/^#/, '') : '';\n      },\n      set: function set(k, v) {\n        var cssColor = undefined;\n\n        if (!Ember['default'].isBlank(v)) {\n          cssColor = '#' + v;\n        }\n\n        this.set('cssColor', cssColor);\n        return v;\n      }\n    })\n  });\n\n});","define('garaje/components/configurator-option-group', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'div',\n    classNames: ['columns'],\n\n    actions: {\n      select: function select(item) {\n        this.set('selected', item);\n      }\n    }\n  });\n\n});","define('garaje/components/configurator-option', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNameBindings: [':configurator-option', 'active', 'convertedClass'],\n\n    active: Ember['default'].computed('list.selected', 'item.data', function () {\n      return this.get('list.selected') === this.get('item.data');\n    }),\n\n    convertedClass: Ember['default'].computed('item.data', function () {\n      if (this.get('item.data')) {\n        return 'configurator-' + Ember['default'].String.camelize(this.get('item.data'));\n      }\n    }),\n\n    click: function click() {\n      this.get('list').send('select', this.get('item.data'));\n    }\n\n  });\n\n});","define('garaje/components/csv-parse', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].TextField.extend({\n    type: 'file',\n    change: function change(evt) {\n      this.sendAction('toggleProcessing');\n      var input, reader;\n      input = evt.target;\n      if (input.files && input.files[0]) {\n        reader = new FileReader();\n        reader.onload = (function (self) {\n          return function (e) {\n            var uploadedFile;\n            //e.srcElement is undefined in Firefox\n            if (typeof e.srcElement !== \"undefined\") {\n              uploadedFile = e.srcElement.result;\n            } else {\n              uploadedFile = e.target.result;\n            }\n            return self.send('parseCsv', uploadedFile, input.files[0]);\n          };\n        })(this);\n        return reader.readAsText(input.files[0]);\n      }\n    },\n    actions: {\n      parseCsv: function parseCsv(file, originalFile) {\n        var self = this;\n        Papa.parse(file, {\n          dynamicTyping: true,\n          skipEmptyLines: true,\n          complete: function complete(results) {\n            self.sendAction('action', results, originalFile);\n            self.sendAction('toggleProcessing');\n          }\n        });\n      }\n    }\n  });\n\n});","define('garaje/components/current-subscription', ['exports', 'ember', 'garaje/helpers/formatted-currency'], function (exports, Ember, formatted_currency) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['tokenized', 'js-current-subscription'],\n\n    subscription: Ember['default'].inject.service(),\n\n    plan: Ember['default'].computed.alias('subscription.plan'),\n\n    period: Ember['default'].computed.alias('subscription.period'),\n\n    yearlySavings: Ember['default'].computed.alias('subscription.yearlySavings'),\n\n    iconClasses: Ember['default'].computed('plan', function () {\n      var plans = ['premium', 'standard', 'enterprise'];\n\n      var plan = this.get('plan');\n      var icon = 'icon-legacyPlan';\n\n      if (plans.indexOf(plan) >= 0) {\n        icon = 'icon-' + plan + 'Plan';\n      }\n\n      return icon;\n    }),\n\n    upsell: Ember['default'].computed('period', 'plan', 'yearlySavings', 'subscription.isFreePlanEnabled', {\n      get: function get() {\n        var _getProperties = this.getProperties('period', 'plan', 'yearlySavings');\n\n        var period = _getProperties.period;\n        var plan = _getProperties.plan;\n        var yearlySavings = _getProperties.yearlySavings;\n\n        var upsellToYearly = period === 'monthly';\n\n        if (this.get('subscription.isFreePlanEnabled') && plan === 'standard' && period === 'monthly') {\n          upsellToYearly = false;\n        }\n\n        if (upsellToYearly) {\n          var savings = formatted_currency.formattedCurrency(yearlySavings, true);\n          return 'Save ' + savings + ' &mdash; upgrade to Yearly billing';\n        } else if (plan === 'standard') {\n          return 'Upgrade to Premium for centralized management and billing of multiple locations, guest pre-registration, custom badges, and more!';\n        }\n      }\n    }).readOnly()\n  });\n\n});","define('garaje/components/custom-field', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['custom-field', 'item'],\n\n    currentLocation: Ember['default'].inject.service(),\n\n    customFields: Ember['default'].computed.alias('currentLocation.config.customFields'),\n    localizedFields: Ember['default'].computed.alias('currentLocation.config.localizedFields'),\n\n    placeholder: Ember['default'].computed('model.type', function () {\n      switch (this.get('model.type')) {\n        case 'multiple_nda':\n          if (this.get('localizedFields')) {\n            return this.get('localizedFields').findBy('field', 'Purpose of visit').get('localized');\n          }\n          return 'Give this field a name';\n        case 'host_notification':\n          if (this.get('localizedFields')) {\n            return this.get('localizedFields').findBy('field', 'Host').get('localized');\n          }\n          return 'Give this field a name';\n        default:\n          return 'Give this field a name';\n      }\n    }),\n\n    isRequiredToggleable: Ember['default'].computed('model.type', function () {\n      return this.get('model.type') !== 'multiple_nda';\n    }),\n\n    isHostNotification: Ember['default'].computed.equal('model.type', 'host_notification'),\n\n    displayTooltip: Ember['default'].computed.and('goToAnchor', 'isHostNotification'),\n\n    isSystemAddedCustomField: Ember['default'].computed('model.type', function () {\n      return ['multiple_nda', 'host_notification'].contains(this.get('model.type'));\n    }),\n\n    click: function click(e) {\n      this.$(e.target).focus();\n    },\n\n    actions: {\n      reorderOptions: function reorderOptions(options) {\n        this.set('options', options);\n      },\n\n      goToAnchor: function goToAnchor(route, anchor) {\n        this.sendAction('goToAnchor', route, anchor);\n      },\n\n      'delete': function _delete() {\n        this.get('customFields').removeObject(this.get('model'));\n      },\n\n      insertOption: function insertOption(value) {\n        var store = this.get('model.store');\n        this.get('options').pushObject(store.createFragment('dropdownOption', { value: value }));\n        this.sendAction('toggleRecalculateContainer');\n      },\n\n      toggleTextarea: function toggleTextarea() {\n        if (this.toggleProperty('isTextarea')) {\n          this.send('convertOptionsToText');\n        } else {\n          this.send('convertTextToOptions');\n        }\n        this.sendAction('toggleRecalculateContainer');\n      },\n\n      convertOptionsToText: function convertOptionsToText() {\n        var options = this.get('options');\n\n        var textOptions = options.map(function (option) {\n          var value = option.get('value');\n          if (!Ember['default'].isBlank(value)) {\n            return value;\n          }\n        }).compact();\n\n        this.set('textOptions', textOptions.join('\\n'));\n      },\n\n      convertTextToOptions: function convertTextToOptions() {\n        var textOptions = this.get('textOptions');\n        // normalize linebreaks\n        textOptions.replace(/(?:\\r\\n|\\r)+/g, '\\n');\n\n        var store = this.get('model.store');\n\n        var newOptions = textOptions.split('\\n').map(function (line) {\n          if (!Ember['default'].isBlank(line)) {\n            return store.createFragment('dropdownOption', { value: line });\n          }\n        }).compact();\n\n        this.set('options', newOptions);\n      }\n    }\n  });\n\n});","define('garaje/components/day-cell', ['exports', 'ember', 'moment'], function (exports, Ember, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'td',\n    classNameBindings: ['classes'],\n\n    classes: Ember['default'].computed('selectedDate', 'date', 'currentMonth', 'hasEntries', 'hasInvites', 'selectedStartDate', function () {\n      var date = this.get('date');\n      var dayFormatted = moment['default'](date).format('YYYYMMDD');\n      var today = moment['default']().format('YYYYMMDD');\n      var selectedDate = moment['default'](this.get('selectedDate')).format('YYYYMMDD');\n\n      var beginningOfMonth = moment['default'](this.get('currentMonth')).startOf('month');\n      var endOfMonth = moment['default'](beginningOfMonth).endOf('month');\n\n      var classes = [];\n\n      if (dayFormatted === today) {\n        classes.push('today');\n      }\n\n      if (dayFormatted === selectedDate) {\n        classes.push('current');\n      }\n\n      if (date.weekday() === 0 || date.weekday() === 6) {\n        classes.push('weekend');\n      }\n\n      var selectedStartDate = this.get('selectedStartDate');\n      if (selectedStartDate && this.get('date').isSame(selectedStartDate.startOf('day'))) {\n        classes.push('range-boundary');\n        classes.push('startAt');\n      }\n\n      var selectedEndDate = this.get('selectedEndDate');\n      if (selectedEndDate && this.get('date').isSame(selectedEndDate.startOf('day'))) {\n        classes.push('range-boundary');\n        classes.push('endAt');\n      }\n\n      if (selectedStartDate && selectedEndDate && date.isBetween(selectedStartDate, selectedEndDate)) {\n        classes.push('range');\n      }\n\n      if (date.isBefore(beginningOfMonth)) {\n        classes.push(this.get('hideLeadingDayCells') ? 'hidden' : 'past');\n      }\n\n      if (date.isAfter(endOfMonth)) {\n        classes.push(this.get('hideTrailingDayCells') ? 'hidden' : 'future');\n      }\n\n      return classes.join(' ');\n    }),\n\n    click: function click() {\n      this.sendAction('action', this.get('date'));\n    }\n  });\n\n});","define('garaje/components/dropdown-field', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'li',\n    classNames: ['dropdownField', 'item'],\n    draggable: false,\n\n    actions: {\n      insertOption: function insertOption() {\n        if (this.get('key-press')) {\n          var value = this.get('value');\n          if (value.length) {\n            Ember['default'].run(this, function () {\n              this.sendAction('key-press', value);\n              this.set('value', null);\n            });\n            var $input = this.$().prev().find('.dropdownField:last input');\n            $input.focus();\n            $input.val('');\n            $input.val(value);\n          }\n        }\n      }\n    }\n  });\n\n});","define('garaje/components/dropdown-option', ['exports', 'ember', 'moment'], function (exports, Ember, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'option',\n    attributeBindings: ['isClosest:selected'],\n    isClosest: Ember['default'].computed('value', 'closestTime', function () {\n      return moment['default'](this.get('value'), \"h:mm a\").isSame(moment['default'](this.get('closestTime')));\n    })\n  });\n\n});","define('garaje/components/email-input', ['exports', 'ember', 'garaje/components/labeled-input'], function (exports, Ember, LabeledInput) {\n\n  'use strict';\n\n  var h = Ember['default'].String.htmlSafe;\n  var mailcheck = window.Mailcheck;\n\n  exports['default'] = LabeledInput['default'].extend({\n    layoutName: 'components/labeled-input',\n\n    label: 'Email',\n\n    focusOut: function focusOut() {\n      Ember['default'].run.later(this, function () {\n        if (!this.isDestroyed) {\n          this.set('label', this._label);\n        }\n      }, 1000);\n    },\n\n    saveOriginalLabel: Ember['default'].on('init', function () {\n      this._label = this.get('label');\n    }),\n\n    didUpdateAttrs: function didUpdateAttrs() {\n      Ember['default'].run.once(this, function () {\n        this.doMailCheck();\n        this.sendAction('action');\n      });\n    },\n\n    doMailCheck: function doMailCheck() {\n      var _this = this;\n\n      var email = this.get('value');\n\n      var mailcheckOptions = {\n        email: email,\n        suggested: function suggested(suggestion) {\n          _this.setProperties({\n            label: h('Did you mean <a>' + suggestion.full + '</a>?'),\n            suggestedEmail: suggestion.full\n          });\n        },\n        empty: function empty() {\n          _this.setProperties({\n            label: _this._label,\n            suggestedEmail: null\n          });\n        }\n      };\n\n      var domain = this.get('domain');\n      if (domain) {\n        mailcheckOptions.domains = [domain];\n      }\n\n      mailcheck.run(mailcheckOptions);\n    },\n\n    actions: {\n      labelClicked: function labelClicked() {\n        var suggestedEmail = this.get('suggestedEmail');\n        if (suggestedEmail) {\n          this.set('value', suggestedEmail);\n        }\n        this.$('input').focus();\n      }\n    }\n  });\n\n});","define('garaje/components/employee-csv-uploader', ['exports', 'ember', 'garaje/utils/url-builder'], function (exports, Ember, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    currentLocation: Ember['default'].inject.service(),\n\n    isProcessing: false,\n    parsedObjects: null,\n    originalFile: null,\n\n    actions: {\n      toggleProcessing: function toggleProcessing() {\n        this.toggleProperty('isProcessing');\n      },\n      handleCsvResults: function handleCsvResults(contents, originalFile) {\n        this.set('originalFile', originalFile);\n        var formattedArray = [];\n        contents.data.forEach(function (datum) {\n          var object = { name: datum[0], email: datum[1], phone: datum[2] };\n          formattedArray.pushObject(object);\n        });\n        this.set('parsedObjects', formattedArray);\n      },\n      uploadCsvToServer: function uploadCsvToServer() {\n        var self = this;\n\n        var UploaderFactory = this.container.lookupFactory('util:uploader');\n        var uploader = UploaderFactory.create({\n          url: urlBuilder['default'].v1.employeesUploadUrl()\n        });\n\n        var promise = uploader.upload(this.get('originalFile'), { location_id: this.get('currentLocation.id') });\n\n        promise.then(function () {\n          self.sendAction('goToNextOnboardingStep', 'employees');\n          self.set('parsedObjects', null);\n        }, function (error) {\n          // don't transition\n          throw error;\n        });\n      }\n    }\n  });\n\n});","define('garaje/components/entry-feed-item', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['js-entry-feed-container'],\n    currentLocation: Ember['default'].inject.service(),\n\n    thumbnailPath: Ember['default'].computed('content.thumbnails.small', function () {\n      var smallThumbnail = this.get('content.thumbnails.small');\n      var src = smallThumbnail ? smallThumbnail : 'assets/images/features/avatar-placeholder.png';\n\n      return src.htmlSafe();\n    }),\n\n    successImgPath: '/assets/images/green-check-small.svg',\n    failImgPath: '/assets/images/red-x-small.svg',\n    sendingImgPath: '/assets/images/orange-progress-small.svg',\n    notSentImgPath: '/assets/images/gray-dash-small.svg',\n\n    smsDisabled: Ember['default'].computed.equal('content.smsStatus', 'disabled'),\n    emailDisabled: Ember['default'].computed.equal('content.emailStatus', 'disabled'),\n    slackDisabled: Ember['default'].computed.equal('content.slackStatus', 'disabled'),\n    hipchatDisabled: Ember['default'].computed.equal('content.hipchatStatus', 'disabled'),\n\n    smsSending: Ember['default'].computed('content.smsStatus', function () {\n      var status = this.get('content.smsStatus');\n      return ['queued', 'sending'].contains(status);\n    }),\n\n    smsSent: Ember['default'].computed('content.smsStatus', function () {\n      var status = this.get('content.smsStatus');\n      return ['sent', 'delivered', 'received'].contains(status);\n    }),\n    emailSent: Ember['default'].computed.equal('content.emailStatus', 'sent'),\n    slackSent: Ember['default'].computed.equal('content.slackStatus', 'sent'),\n    hipchatSent: Ember['default'].computed.equal('content.hipchatStatus', 'sent'),\n\n    smsNotSent: Ember['default'].computed.equal('content.smsStatus', 'not_sent'),\n    emailNotSent: Ember['default'].computed.equal('content.emailStatus', 'not_sent'),\n    slackNotSent: Ember['default'].computed.equal('content.slackStatus', 'not_sent'),\n    hipchatNotSent: Ember['default'].computed.equal('content.hipchatStatus', 'not_sent'),\n\n    smsFailed: Ember['default'].computed('content.smsStatus', function () {\n      var status = this.get('content.smsStatus');\n      return ['failed', 'undelivered'].contains(status);\n    }),\n    emailFailed: Ember['default'].computed.equal('content.emailStatus', 'failed'),\n    slackFailed: Ember['default'].computed.equal('content.slackStatus', 'failed'),\n    hipchatFailed: Ember['default'].computed.equal('content.hipchatStatus', 'failed'),\n\n    actions: {\n      signMeOut: function signMeOut() {\n        this.sendAction('action', this.get('content'));\n      }\n    }\n  });\n\n});","define('garaje/components/envoy-2up-calendar', ['exports', 'ember', 'moment'], function (exports, Ember, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    hasClickedCalendar: true,\n    shouldHideCalendars: true,\n    hasChosenEndDate: false,\n    isSelectingStartDate: true,\n\n    _setInitDate: (function () {\n      var startMonth = moment['default'](this.get('startDate')).startOf('month');\n      this.set('date', startMonth);\n    }).on('init'),\n\n    selectedStartDate: Ember['default'].computed('startDate', function () {\n      return moment['default'](this.get('startDate'));\n    }),\n\n    selectedEndDate: Ember['default'].computed('endDate', function () {\n      return moment['default'](this.get('endDate'));\n    }),\n\n    shouldNotHideCalendarOnFocusOut: Ember['default'].computed.and('hasSelectedDate', 'shouldHideCalendars'),\n\n    formattedStartDate: Ember['default'].computed('selectedStartDate', function () {\n      return this.get('selectedStartDate').format('l');\n    }),\n\n    formattedEndDate: Ember['default'].computed('selectedEndDate', function () {\n      return this.get('selectedEndDate').format('l');\n    }),\n\n    currentMonth: Ember['default'].computed('date', function () {\n      return moment['default'](this.get('date')).startOf('month');\n    }),\n\n    nextMonth: Ember['default'].computed('date', function () {\n      return moment['default'](this.get('date')).add(1, 'month').startOf('month');\n    }),\n\n    calendarWrapperClass: Ember['default'].computed('shouldHideCalendars', function () {\n      return this.get('shouldHideCalendars') ? 'hide' : 'show';\n    }),\n\n    _resetHasChosenDate: Ember['default'].observer('hasChosenEndDate', function () {\n      if (this.get('hasChosenEndDate')) {\n        Ember['default'].run.later(this, function () {\n          this.set('hasChosenEndDate', false);\n          var focusedElement = this.$(':focus');\n          focusedElement.blur();\n        });\n      }\n    }),\n\n    preventClickingOnCalendarFocusingOut: (function (event) {\n      if (!this.get('shouldHideCalendars')) {\n        event.preventDefault();\n      }\n    }).on('mouseDown'),\n\n    lostFocus: (function () {\n      if (!this.get('shouldHideCalendars')) {\n        Ember['default'].run.later(this, function () {\n          this.set('shouldHideCalendars', true);\n        });\n      }\n    }).on('focusOut'),\n\n    actions: {\n      goBackOneMonth: function goBackOneMonth() {\n        this.set('date', moment['default'](this.get('date')).subtract(1, 'month'));\n      },\n\n      goToNextMonth: function goToNextMonth() {\n        this.set('date', moment['default'](this.get('date')).add(1, 'month'));\n      },\n\n      selectDate: function selectDate(selectedDate) {\n        if (this.get('isSelectingStartDate')) {\n          var startMonth = moment['default'](selectedDate).startOf('month');\n\n          this.setProperties({\n            date: startMonth,\n            startDate: selectedDate.startOf('day'),\n            isSelectingStartDate: false\n          });\n\n          if (this.get('selectedStartDate').isAfter(this.get('selectedEndDate'))) {\n            this.set('endDate', selectedDate);\n          }\n        } else {\n          var startMonth = moment['default'](this.get('startDate')).startOf('month');\n\n          this.setProperties({\n            endDate: selectedDate.endOf('day'),\n            date: startMonth\n          });\n\n          if (this.get('selectedEndDate').isBefore(this.get('selectedStartDate'))) {\n            alert('Selected end date is before start date. Please select dates again.');\n            this.set('startDate', selectedDate);\n          } else {\n            this.setProperties({\n              hasChosenEndDate: true,\n              shouldHideCalendars: true\n            });\n          }\n        }\n      },\n\n      beginStartDateSelection: function beginStartDateSelection() {\n        var startMonth = moment['default'](this.get('startDate')).startOf('month');\n        this.$('.js-datepicker-open').focus();\n        this.setProperties({\n          shouldHideCalendars: false,\n          isSelectingStartDate: true,\n          date: startMonth\n        });\n      }\n    }\n  });\n\n});","define('garaje/components/envoy-calendar', ['exports', 'ember', 'moment'], function (exports, Ember, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    selectedDate: Ember['default'].computed('date', function () {\n      if (this.get('date')) {\n        return moment['default'](this.get('date'), 'YYYYMMDD');\n      }\n    }),\n\n    currentMonth: Ember['default'].computed('date', function () {\n      return moment['default'](this.get('date')).startOf('month');\n    }),\n\n    setDate: function setDate(date) {\n      this.setProperties({ date: date, query: '' });\n    },\n\n    actions: {\n      goBackOneMonth: function goBackOneMonth() {\n        this.setDate(moment['default'](this.get('date')).subtract(1, 'month'));\n      },\n\n      goToNextMonth: function goToNextMonth() {\n        this.setDate(moment['default'](this.get('date')).add(1, 'month'));\n      },\n\n      selectDate: function selectDate(selectedDate) {\n        this.setDate(moment['default'](selectedDate));\n      }\n    }\n  });\n\n});","define('garaje/components/envoy-sortable', ['exports', 'ember', 'garaje/components/sortable-group'], function (exports, Ember, SortableGroup) {\n\n  'use strict';\n\n  exports['default'] = SortableGroup['default'].extend({\n    didInsertElement: function didInsertElement() {\n      this._super();\n      var parent = Ember['default'].$(this.get('parentClass'));\n      var originalHeight = parent.height() + 80;\n      parent.css('height', originalHeight);\n    },\n\n    _recalculateContainer: function _recalculateContainer() {\n\n      if (this.attrs.recalculateContainer) {\n        this.attrs.recalculateContainer();\n      } else {\n        var parent = Ember['default'].$(this.get('parentClass'));\n        parent.removeAttr('style');\n\n        Ember['default'].run.next(this, function () {\n          var originalHeight = parent.height() + 80;\n          parent.css('height', originalHeight);\n          this.sendAction('toggleRecalculateContainer');\n        });\n      }\n    },\n\n    didUpdateAttrs: function didUpdateAttrs(_ref) {\n      var oldAttrs = _ref.oldAttrs;\n      var newAttrs = _ref.newAttrs;\n\n      if (oldAttrs.collectionLength && newAttrs.collectionLength) {\n        if (oldAttrs.collectionLength.value !== newAttrs.collectionLength.value) {\n          Ember['default'].run.once(this, this._recalculateContainer);\n        }\n      }\n      if (this.get('recalculateDragContainer')) {\n        Ember['default'].run.once(this, this._recalculateContainer);\n      }\n    },\n    actions: {\n      toggleRecalculateContainer: function toggleRecalculateContainer() {\n        Ember['default'].run.once(this, this._recalculateContainer);\n      }\n    }\n  });\n\n});","define('garaje/components/file-upload', ['exports', 'ember', 'garaje/utils/flash-promise'], function (exports, Ember, flashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].FileField.extend({\n    url: '',\n    max: 1,\n    classNames: ['js-file-upload-input'],\n    namespace: null,\n    param: 'file',\n    requestType: 'POST',\n    init: function init() {\n      this._super.apply(this, arguments);\n\n      var UploaderFactory = this.container.lookupFactory('util:uploader');\n      this.set('uploaderClass', UploaderFactory);\n    },\n\n    filesDidChange: Ember['default'].observer('files', function () {\n      var _this = this;\n\n      var uploadUrl = this.get('url'),\n          files = this.get('files'),\n          namespace = this.get('namespace'),\n          param = this.get('param'),\n          extra = this.get('extra'),\n          type = this.get('requestType'),\n          uploader = this.get('uploaderClass').create({\n        url: uploadUrl,\n        paramNamespace: namespace,\n        paramName: param,\n        type: type\n      }),\n          promises = [];\n\n      uploader.on('didUpload', function (response) {\n        _this.sendAction('action', response);\n      });\n\n      if (!Ember['default'].isEmpty(files)) {\n        var maxFiles = Math.min(this.get('max'), files.length);\n\n        for (var i = 0; i < maxFiles; i++) {\n          this.sendAction('beginUpload');\n          promises.push(uploader.upload(files[i], extra));\n        }\n      }\n\n      var allPromise = Ember['default'].RSVP.all(promises)['finally'](function () {\n        _this.sendAction('allUploaded');\n        if (_this.element) {\n          _this.$().prop('value', '');\n        }\n        uploader.off('didUpload');\n      });\n\n      if (!this.get('flashPromiseOff')) {\n        flashPromise['default'](allPromise, this.get('targetObject'));\n      }\n    })\n  });\n\n});","define('garaje/components/flash-message', ['exports', 'ember'], function (exports, Em) {\n\n  'use strict';\n\n  exports['default'] = Em['default'].Component.extend({\n    attributeBindings: ['style'],\n    classNameBindings: [':messageBar', 'type', 'isFlashVisible:showFlash:hideFlash'],\n\n    isMouseOver: false,\n\n    mouseEnter: function mouseEnter() {\n      this.set('isMouseOver', true);\n    },\n\n    mouseLeave: function mouseLeave() {\n      this.set('isMouseOver', false);\n    },\n\n    isFlashVisible: Em['default'].computed.or('flashVisible', 'isMouseOver'),\n\n    actions: {\n      hideFlash: function hideFlash() {\n        this.set('isMouseOver', false);\n        this.sendAction('action');\n      }\n    }\n  });\n\n});","define('garaje/components/google-maps', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    insertMap: Ember['default'].on('didInsertElement', function () {\n      if (!window.google) {\n        return;\n      }\n\n      var container = this.$('.mapCanvas'),\n          latLng = this.get('latLng'),\n          options = {\n        zoom: 15,\n        center: latLng,\n        disableDefaultUI: true,\n        draggable: false,\n        scrollwheel: false,\n        disableDoubleClickZoom: true\n      };\n\n      var map = new google.maps.Map(container[0], options);\n      this.set('map', map);\n\n      var marker = new google.maps.Marker({\n        position: latLng,\n        map: map\n      });\n      this.set('marker', marker);\n    }),\n\n    latLng: Ember['default'].computed('latitude', 'longitude', function () {\n      return new google.maps.LatLng(this.get('latitude'), this.get('longitude'));\n    }),\n\n    latLngDidChange: Ember['default'].observer('latLng', function () {\n      var latLng = this.get('latLng');\n      this.get('map').setCenter(latLng);\n      this.get('marker').setPosition(latLng);\n    })\n  });\n\n});","define('garaje/components/granular-address-lookup-fields-settings', ['exports', 'ember', 'garaje/components/granular-address-lookup-fields'], function (exports, Ember, GranularAddressFields) {\n\n  'use strict';\n\n  exports['default'] = GranularAddressFields['default'].extend({\n    addressLookup: Ember['default'].inject.service(),\n\n    actions: {\n      updateAddress: function updateAddress() {\n        var _this = this;\n\n        this.get('addressLookup').updateAddress(this.get('inputAddress'), this.get('model')).then(function () {\n          _this.sendAction('unfadeMap');\n        });\n        Ember['default'].run.next(this, function () {\n          this.$('.js-addressLine2').focus().select();\n        });\n      },\n\n      fadeMap: function fadeMap() {\n        this.sendAction('fadeMap');\n      }\n    }\n  });\n\n});","define('garaje/components/granular-address-lookup-fields', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    hasAddress: Ember['default'].computed('model.country', {\n      get: function get() {\n        return !Ember['default'].isEmpty(this.get('model.country'));\n      },\n      set: function set(k, v) {\n        return v;\n      }\n    }),\n    didUpdateAttrs: function didUpdateAttrs() {\n      if (this.attrs.addressDidChange) {\n        this.attrs.addressDidChange(this.get('inputAddress'));\n      }\n    },\n\n    actions: {\n      updateAddress: function updateAddress() {\n        Ember['default'].run.next(this, function () {\n          this.$('.js-addressLine2').focus().select();\n        });\n      },\n      addressSelected: function addressSelected() {\n        this.set('hasAddress', true);\n        Ember['default'].run.next(this, function () {\n          this.$('.js-addressLine2').focus().select();\n        });\n      }\n    }\n  });\n\n});","define('garaje/components/gravatar-image', ['exports', 'ember', 'garaje/components/avatar-image'], function (exports, Ember, AvatarImage) {\n\n  'use strict';\n\n  exports['default'] = AvatarImage['default'].extend({\n    setInitialThrottledEmail: Ember['default'].on('didInsertElement', function () {\n      this.set('throttledEmail', this.get('email'));\n    }),\n\n    emailDidChange: Ember['default'].observer('email', function () {\n      Ember['default'].run.debounce(this, 'updateThrottledEmail', 500);\n    }),\n\n    updateThrottledEmail: function updateThrottledEmail() {\n      if (!this.isDestroyed) {\n        this.set('throttledEmail', this.get('email'));\n      }\n    },\n\n    clearIsNotFound: Ember['default'].observer('throttledEmail', function () {\n      this.set('isNotFound', false);\n    }),\n\n    md5Email: Ember['default'].computed('throttledEmail', function () {\n      return md5(this.get('throttledEmail'));\n    }),\n\n    src: Ember['default'].computed('md5Email', 'size', 'fallbackImage', 'isNotFound', function () {\n      if (this.get('isNotFound')) {\n        return this.get('fallbackImage');\n      } else {\n        return '//www.gravatar.com/avatar/' + this.get('md5Email') + '?s=' + this.get('size') + '&d=' + encodeURIComponent(this.get('fallbackImage'));\n      }\n    })\n  });\n\n});","define('garaje/components/i18n-config/component', ['exports', 'ember', 'garaje/utils/flash-promise'], function (exports, Ember, flashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    isEditing: Ember['default'].computed.alias('model.isEditingI18n'),\n\n    localeOptions: [{ label: 'English', value: 'en' }, { label: 'Dansk (Danish)', value: 'da' }, { label: 'Deutsch (German)', value: 'de' }, { label: 'Español (Spanish)', value: 'es' }, { label: 'Suomi (Finnish)', value: 'fi' }, { label: 'Français (French)', value: 'fr' }, { label: 'हिन्दी (Hindi)', value: 'hi-IN' }, { label: 'Italiano (Italian)', value: 'it' }, { label: '日本語 (Japanese)', value: 'ja' }, { label: '한국어 (Korean)', value: 'ko' }, { label: 'Norsk (Norwegian)', value: 'nb' }, { label: 'Nederlands (Dutch)', value: 'nl' }, { label: 'Português (Portuguese)', value: 'pt-BR' }, { label: 'Pусский (Russian)', value: 'ru' }, { label: 'Română (Romanian)', value: 'ro' }, { label: 'Svenska (Swedish)', value: 'sv-SE' }, { label: '简体中文 (Chinese Simplified)', value: 'zh-CN' }, { label: '繁体中文 (Chinese Traditional)', value: 'zh-TW' }],\n\n    currentLocale: Ember['default'].computed('model.locale', function () {\n      var locale = this.get('model.locale');\n      return this.get('localeOptions').findBy('value', locale);\n    }),\n\n    isDirty: Ember['default'].computed('model.locale', 'model.content', function () {\n      var content = this.get('model.content');\n      if (content) {\n        return 'locale' in content.changedAttributes();\n      }\n    }),\n\n    actions: {\n      save: function save(callback) {\n        var _this = this;\n\n        var promise = this.get('model').save().then(function (model) {\n          return model.get('config');\n        }).then(function (config) {\n          return config.reload();\n        }).then(function () {\n          return _this.attrs.transitionToRoute('location');\n        });\n\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      rollback: function rollback() {\n        this.get('model').rollbackAttributes();\n      }\n    }\n  });\n\n});","define('garaje/components/i18n-config/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 14,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 16,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/components/i18n-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[15,10],[15,109]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 16,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 18,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/components/i18n-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"link-to\",[\"Edit\",\"i18n\"],[\"class\",\"btn btn--small btn--blue\"],[\"loc\",[null,[17,10],[17,68]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 19,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/components/i18n-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[14,14],[14,24]]]]],[],0,1,[\"loc\",[null,[14,8],[18,15]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 22,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 41,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/components/i18n-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n            var el2 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"col col-6\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"label\");\n            dom.setAttribute(el3,\"for\",\"_localeSelect\");\n            var el4 = dom.createTextNode(\"Language\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"Choose the language Envoy will use to send \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"strong\");\n            var el5 = dom.createTextNode(\"Host Notifications\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\", \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"strong\");\n            var el5 = dom.createTextNode(\"Visitor Invite emails\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\", and \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"strong\");\n            var el5 = dom.createTextNode(\"Visitor NDA receipt emails\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\".\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"We recommend editing your \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"a\");\n            var el5 = dom.createTextNode(\"Agreements\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\", \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"a\");\n            var el5 = dom.createTextNode(\"Custom Fields\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\", and the \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"a\");\n            var el5 = dom.createTextNode(\"Pre-Registration Instructions\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" to support your chosen language.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1, 1]);\n            var element1 = dom.childAt(element0, [7]);\n            var element2 = dom.childAt(element1, [1]);\n            var element3 = dom.childAt(element1, [3]);\n            var element4 = dom.childAt(element1, [5]);\n            var morphs = new Array(4);\n            morphs[0] = dom.createMorphAt(element0,3,3);\n            morphs[1] = dom.createElementMorph(element2);\n            morphs[2] = dom.createElementMorph(element3);\n            morphs[3] = dom.createElementMorph(element4);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"x-select-blockless\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"localeOptions\",[\"loc\",[null,[28,18],[28,31]]]]],[],[]],\"class\",\"js-locale\",\"id\",\"_localeSelect\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.locale\",[\"loc\",[null,[31,16],[31,28]]]]],[],[]],\"optionValuePath\",\"content.value\",\"optionLabelPath\",\"content.label\"],[\"loc\",[null,[27,10],[34,12]]]],\n            [\"element\",\"action\",[[\"get\",\"goToAnchor\",[\"loc\",[null,[37,51],[37,61]]]],\"ipad\",\"#js-signed-agreements\"],[],[\"loc\",[null,[37,42],[37,94]]]],\n            [\"element\",\"action\",[[\"get\",\"goToAnchor\",[\"loc\",[null,[37,123],[37,133]]]],\"ipad\",\"#js-custom-fields\"],[],[\"loc\",[null,[37,114],[37,162]]]],\n            [\"element\",\"action\",[[\"get\",\"goToAnchor\",[\"loc\",[null,[37,202],[37,212]]]],\"pre-registration\",\"#js-invitation-email\"],[],[\"loc\",[null,[37,193],[37,256]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 43,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/components/i18n-config/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 flex flex-column js-location-i18n\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/features/i18n.png\");\n          dom.setAttribute(el4,\"width\",\"50\");\n          dom.setAttribute(el4,\"height\",\"50\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Internationalization\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Your current language is: \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"strong\");\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element5 = dom.childAt(fragment, [1]);\n          var element6 = dom.childAt(element5, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element6, [3, 3, 1]),0,0);\n          morphs[1] = dom.createMorphAt(element6,5,5);\n          morphs[2] = dom.createMorphAt(element5,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"currentLocale.label\",[\"loc\",[null,[10,56],[10,79]]]],\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[13,33],[13,36]]]]],[],[]]],0,null,[\"loc\",[null,[13,6],[19,27]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[22,17],[22,27]]]]],[\"class\",\"js-tokenized\"],1,null,[\"loc\",[null,[22,4],[41,18]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 44,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/components/i18n-config/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditing\",[\"loc\",[null,[1,24],[1,33]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"isDirty\",[\"loc\",[null,[1,42],[1,49]]]]],[],[]],\"rollback\",\"rollback\",\"action\",[\"subexpr\",\"action\",[[\"get\",\"transitionToRoute\",[\"loc\",[null,[1,85],[1,102]]]],\"location\"],[],[\"loc\",[null,[1,77],[1,114]]]]],0,null,[\"loc\",[null,[1,0],[43,18]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/components/ic-menu-item', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    currentLocation: Ember['default'].inject.service(),\n\n    tagName: 'ic-menu-item',\n\n    attributeBindings: ['tabindex', 'role', 'aria-disabled'],\n\n    role: 'menuitem',\n\n    enabled: true,\n\n    tabindex: -1,\n\n    focused: false,\n\n    isActive: Ember['default'].computed('currentLocation.content', 'location', {\n      get: function get() {\n        return this.get('currentLocation.content') === this.get('location');\n      }\n    }).readOnly(),\n\n    classNameBindings: ['location.primary', 'location.disabled', 'isActive:active'],\n\n    'aria-disabled': (function () {\n      return !this.get('enabled') + ''; // coerce to ensure true || false\n    }).property('enabled'),\n\n    click: function click(event) {\n      var wasKeyboard = !event.clientX && !event.clientY;\n      this.get('parentList').close();\n      Ember['default'].run.next(this, function () {\n        if (wasKeyboard) {\n          this.get('parentList').focusTrigger();\n        }\n        if (this.get('enabled')) {\n          this.sendAction('on-select', this);\n        } else {\n          this.sendAction('on-disabled-select', this);\n        }\n      });\n    },\n\n    keyDown: function keyDown(event) {\n      if (event.keyCode == 13 || event.keyCode == 32) {\n        this.click(event);\n      }\n    },\n\n    register: (function () {\n      this.get('parentList').registerItem(this);\n    }).on('didInsertElement'),\n\n    deregister: (function () {\n      this.get('parentList').deregisterItem(this);\n    }).on('willDestroyElement'),\n\n    focus: function focus() {\n      this.set('focused', true);\n      this.$().focus();\n    },\n\n    mouseEnter: function mouseEnter() {\n      this.get('parentList').focusItem(this);\n    },\n\n    blur: function blur() {\n      this.set('focused', false);\n    }\n\n  });\n\n});","define('garaje/components/ic-menu-list', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n\n    role: 'menu',\n\n    tagName: 'ic-menu-list',\n\n    attributeBindings: ['ariaExpanded:aria-expanded', 'tabindex', 'role'],\n\n    // so we can focus the menu manually and get \"focusOut\" to trigger without\n    // putting the menu in the tab-o-sphere\n    tabindex: -1,\n\n    isOpen: false,\n\n    ariaExpanded: (function () {\n      return this.get('isOpen') + ''; // aria wants \"true\" and \"false\" as strings\n    }).property('isOpen'),\n\n    focusedItem: null,\n\n    createItems: (function () {\n      this.set('items', Ember['default'].ArrayProxy.create({ content: [] }));\n    }).on('init'),\n\n    keyDown: function keyDown(event) {\n      var keysDict = {\n        40: this.focusNext, /*down*/\n        38: this.focusPrevious, /*up*/\n        27: this.focusTrigger /*escape*/\n      };\n      if (keysDict.hasOwnProperty(event.keyCode)) {\n        event.preventDefault();\n        keysDict[event.keyCode].call(this);\n      }\n    },\n\n    focusTrigger: function focusTrigger() {\n      this.get('parentMenu.listTrigger').focus();\n    },\n\n    focusNext: function focusNext() {\n      var index = 0;\n      var items = this.get('items');\n      var focusedItem = this.get('focusedItem');\n      if (focusedItem) {\n        index = items.indexOf(focusedItem) + 1;\n      }\n      if (index === items.get('length')) {\n        index = 0; // loop it\n      }\n      this.focusItemAtIndex(index);\n    },\n\n    focusPrevious: function focusPrevious() {\n      var items = this.get('items');\n      var index = items.get('length') - 1;\n      var focusedItem = this.get('focusedItem');\n      if (focusedItem) {\n        index = items.indexOf(focusedItem) - 1;\n      }\n      if (index == -1) {\n        index = items.get('length') - 1; // loop it\n      }\n      this.focusItemAtIndex(index);\n    },\n\n    focusItemAtIndex: function focusItemAtIndex(index) {\n      var item = this.get('items').objectAt(index);\n      if (item) {\n        this.focusItem(item);\n      }\n    },\n\n    focusItem: function focusItem(item) {\n      var focusedItem = this.get('focusedItem');\n      if (focusedItem) focusedItem.blur();\n      this.set('focusedItem', item);\n      item.focus();\n    },\n\n    itemsAsHash: function itemsAsHash() {\n      var items = this.get('items');\n      var itemsHash = {};\n      items.forEach(function (item) {\n        var id = item.$().attr('id');\n        itemsHash[id] = item;\n      });\n      return itemsHash;\n    },\n\n    syncItemsWithChildViews: function syncItemsWithChildViews() {\n      // this.get('childViews') doesn't seem to update as menu-items\n      // are added / removed. so resorting to pulling directly from DOM :/\n      if (!this.$()) {\n        return; // not in DOM\n      }\n      var cv = this.$().find('ic-menu-item').get();\n      var itemsHash = this.itemsAsHash();\n      if (!cv) {\n        return;\n      }\n      var items = [];\n      cv.forEach(function (child) {\n        var id = Ember['default'].$(child).attr('id');\n        if (itemsHash[id]) {\n          items.push(itemsHash[id]);\n        }\n      });\n      this.set('items', items);\n    },\n\n    registerItem: function registerItem(item) {\n      this.get('items').addObject(item);\n      Ember['default'].run.debounce(this, this.syncItemsWithChildViews, 1);\n    },\n\n    deregisterItem: function deregisterItem(item) {\n      this.get('items').removeObject(item);\n      Ember['default'].run.debounce(this, this.syncItemsWithChildViews, 1);\n    },\n\n    open: function open() {\n      this.set('isOpen', true);\n    },\n\n    close: function close() {\n      this.set('isOpen', false);\n      this.set('focusedItem', null);\n    },\n\n    focusFirstItemOnOpen: (function () {\n      if (!this.get('isOpen')) return;\n      // wait for dom repaint so we can actually focus items\n      Ember['default'].run.next(this, function () {\n        if (this.get('parentMenu.listTrigger.lastClickEventWasMouse')) {\n          // focus the list then keyboard navigation still works, but the first\n          // item isn't strangely selected\n          this.$().focus();\n        } else {\n          // select first item for keyboard navigation\n          this.focusItemAtIndex(0);\n        }\n      });\n    }).observes('isOpen'),\n\n    registerWithParent: (function () {\n      this.get('parentMenu').registerList(this);\n    }).on('didInsertElement'),\n\n    focusOut: function focusOut(event) {\n      // wait for activeElement to get set (I think?)\n      Ember['default'].run.next(this, function () {\n        // gaurd against case where this.$() is undefinded.\n        // otherwise get random failures\n        if (this.$()) {\n          if (!this.$().has(document.activeElement).length) {\n            this.close();\n          }\n        }\n      });\n    }\n\n  });\n\n});","define('garaje/components/ic-menu-manager', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: '',\n    registMenu: function registMenu(name, menu) {\n      this.set(name, menu);\n    }\n  });\n\n});","define('garaje/components/ic-menu-trigger', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n\n    tagName: 'ic-menu-trigger',\n\n    role: 'button',\n\n    attributeBindings: ['ariaOwns:aria-owns', 'ariaHaspopup:aria-haspopup', 'role', 'tabindex', 'title'],\n\n    tabindex: 0,\n\n    ariaHaspopup: 'true',\n\n    ariaOwns: (function () {\n      return this.get('parentMenu.list.elementId');\n    }).property('parentMenu.list'),\n\n    mouseDown: function mouseDown() {\n      if (!this.get('parentMenu.list.isOpen')) return;\n      // MenuList::focusOut handles outerclick/outerfocus, mousedown on the\n      // trigger will close an already open list, then the click finishes after\n      // and would reopen the list, so we have this temporary property to deal\n      // with it.\n      this.closingClickStarted = true;\n    },\n\n    click: Ember['default'].aliasMethod('openList'),\n\n    keyDown: function keyDown(event) {\n      switch (event.keyCode) {\n        case 13 /*enter*/:\n        case 32 /*space*/:\n        case 40 /*down*/:\n        case 38 /*up*/:\n          this.openList(event);break;\n      }\n    },\n\n    openList: function openList(event) {\n      event.preventDefault();\n      // I have no idea how reliable this is, but it seems good enough\n      this.set('lastClickEventWasMouse', event.clientX > 0 && event.clientY > 0);\n      if (this.closingClickStarted) {\n        return this.closingClickStarted = false;\n      }\n\n      this.get('parentMenu').openList();\n    },\n\n    registerWithParent: (function () {\n      this.get('parentMenu').registerTrigger(this);\n    }).on('didInsertElement'),\n\n    focus: function focus() {\n      this.$().focus();\n    }\n\n  });\n\n});","define('garaje/components/ic-menu', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n\n    didInitAttrs: function didInitAttrs() {\n      if (this.get('manager')) {\n        this.get('manager').registMenu(this.get('menuName') || this.elementId, this);\n      }\n    },\n\n    tagName: 'ic-menu',\n\n    classNameBindings: ['isOpen:is-open:is-closed'],\n\n    list: null,\n\n    listTrigger: null,\n\n    isOpen: (function () {\n      return this.get('list.isOpen');\n    }).property('list.isOpen'),\n\n    registerList: function registerList(list) {\n      this.set('list', list);\n    },\n\n    registerTrigger: function registerTrigger(trigger) {\n      this.set('listTrigger', trigger);\n    },\n\n    openList: function openList() {\n      this.get('list').open();\n    }\n\n  });\n\n});","define('garaje/components/inline-loading-spinner', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: 'loader',\n    didUpdateAttrs: function didUpdateAttrs() {\n      var _this = this;\n\n      this.set('showSpinner', true);\n\n      // <2015-07-23 Thu> - Adolfo Builes\n      // We don't need an observer to identify changes in the attributes\n      // see http://s.abuiles.com/0i0b00092M1b\n      if (this.get('promise')) {\n        this.get('promise')['finally'](function () {\n          _this.set('showSpinner', false);\n        });\n      }\n    }\n  });\n\n});","define('garaje/components/invite-feed-item', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['js-invite-feed-item'],\n\n    currentLocation: Ember['default'].inject.service(),\n\n    visitorIsSignedIn: Ember['default'].computed.bool('invite.entry.signInTime'),\n    visitorIsSignedOut: Ember['default'].computed.bool('invite.entry.signOutTime'),\n    visitorIsNotSignedOut: Ember['default'].computed.not('visitorIsSignedOut'),\n    markVisitorAsSignedIn: Ember['default'].computed.and('visitorIsSignedIn', 'visitorIsNotSignedOut'),\n\n    visitorTimeDiff: 0,\n\n    didInsertElement: function didInsertElement() {\n      Ember['default'].run.scheduleOnce('afterRender', this, '_setVisitorTimeDiff');\n    },\n\n    willDestroyElement: function willDestroyElement() {\n      var timer = this.get('timer');\n      if (timer) {\n        Ember['default'].run.cancel(timer);\n      }\n    },\n\n    _setVisitorTimeDiff: function _setVisitorTimeDiff() {\n      if (Ember['default'].testing) {\n        return false;\n      }\n      var now = moment();\n      var expectedAt = moment(this.get('invite.expectedArrivalTime'));\n      var diff = expectedAt.diff(now, 'minutes');\n\n      if (!this.get('visitorIsSignedIn')) {\n        this.set('visitorTimeDiff', diff);\n        var timer = Ember['default'].run.later(this, this._setVisitorTimeDiff, 5000);\n        this.set('timer', timer);\n      }\n    },\n\n    markVisitorAsLate: Ember['default'].computed('visitorTimeDiff', 'visitorIsSignedIn', function () {\n      return !this.get('visitorIsSignedIn') && this.get('visitorTimeDiff') < -20;\n    }),\n\n    actions: {\n      redirectToEnvoyWebInvite: function redirectToEnvoyWebInvite() {\n        var redirectPath = '/invites/' + this.get('invite.id') + '/edit';\n        this.sendAction('action', redirectPath);\n      },\n      setIsSelectedTrue: function setIsSelectedTrue() {\n        this.set('invite.isSelected', true);\n      }\n    }\n  });\n\n});","define('garaje/components/ipad-custom-fields', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n\n    recalculateDragContainer: false,\n\n    customFieldsLength: Ember['default'].computed('model.customFields.[]', function () {\n      return this.get('model.customFields.length');\n    }).readOnly(),\n\n    setIpadField: function setIpadField(field, val) {\n      this.set(field, val);\n      this.send('recalculateDraggableContainer');\n    },\n\n    hasEmailOrPhone: Ember['default'].computed.or('model.hasEmail', 'model.hasPhone'),\n\n    hasEmailXorPhone: Ember['default'].computed('model.hasEmail', 'model.hasPhone', function () {\n      var hasEmail = this.get('model.hasEmail');\n      var hasPhone = this.get('model.hasPhone');\n      return hasEmail && !hasPhone || !hasEmail && hasPhone;\n    }),\n\n    isEmailOrPhoneRemovable: Ember['default'].computed('model.beenHereBefore', 'hasEmailXorPhone', function () {\n      return !(this.get('model.beenHereBefore') && this.get('hasEmailXorPhone'));\n    }),\n\n    isBeenHereBeforeDisabled: Ember['default'].computed('model.isSaving', 'hasEmailOrPhone', function () {\n      return this.get('model.isSaving') || !this.get('hasEmailOrPhone');\n    }),\n\n    actions: {\n\n      addCustomField: function addCustomField(menuItem) {\n        var field = this.get('model.store').createFragment('customField', {\n          dropdown: menuItem.get('type') === 'dropdown',\n          options: []\n        });\n        var customFields = this.get('model.customFields');\n        if (customFields) {\n          customFields.pushObject(field);\n        } else {\n          this.set('model.customFields', [field]);\n        }\n      },\n\n      addEmailField: function addEmailField() {\n        this.setIpadField('model.hasEmail', true);\n      },\n\n      deleteEmailField: function deleteEmailField() {\n        this.setIpadField('model.hasEmail', false);\n      },\n\n      addPhoneField: function addPhoneField() {\n        this.setIpadField('model.hasPhone', true);\n      },\n\n      deletePhoneField: function deletePhoneField() {\n        this.setIpadField('model.hasPhone', false);\n      },\n\n      toggleRecalculateContainer: function toggleRecalculateContainer() {\n        this.toggleProperty('recalculateDragContainer');\n      },\n\n      reorderCustomFields: function reorderCustomFields(customFields) {\n        this.get('model').set('customFields', customFields);\n      },\n\n      recalculateDraggableContainer: function recalculateDraggableContainer() {\n        var parent = Ember['default'].$('.fieldSorter');\n        parent.removeAttr('style');\n\n        Ember['default'].run(function () {\n          var originalHeight = parent.height() + 80;\n          parent.css('height', originalHeight);\n        });\n      }\n    }\n\n  });\n\n});","define('garaje/components/labeled-input', ['exports', 'ember', 'garaje/helpers/array-to-sentence', 'garaje/utils/falsy-computed'], function (exports, Ember, array_to_sentence, falsyComputed) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    type: 'text',\n    size: 1,\n    placeholder: '',\n\n    attributeBindings: ['disabled'],\n\n    validated: true,\n    noErrors: falsyComputed['default']('hasErrors'),\n    isValid: Ember['default'].computed('validated', 'noErrors', function () {\n      if (this.get('validated')) {\n        return this.get('noErrors');\n      } else {\n        return true;\n      }\n    }),\n\n    didInsertElement: function didInsertElement() {\n      Ember['default'].run.scheduleOnce('afterRender', this, '_setAttrs');\n    },\n\n    _setAttrs: function _setAttrs() {\n      var props = this.getProperties('size', 'data-stripe', 'maxlength', 'autocomplete', 'pattern', 'disabled', 'tabindex', 'readonly', 'spellcheck');\n\n      var inputAttributes = {};\n\n      Object.keys(props).forEach(function (key) {\n        if (typeof props[key] !== 'undefined' && props[key] !== null) {\n          inputAttributes[key] = props[key];\n        }\n      });\n\n      this.get('childViews').objectAt(1).setProperties(inputAttributes);\n    },\n\n    labelForError: Ember['default'].computed('errorLabel', 'hasErrors', 'label', function () {\n      var errorLabel = this.get('errorLabel');\n      var label = this.get('label');\n      var hasErrors = this.get('hasErrors');\n\n      if (Ember['default'].isBlank(errorLabel)) {\n        if (typeof hasErrors === 'boolean') {\n          return 'This field is invalid';\n        } else if (Ember['default'].isArray(hasErrors)) {\n          return [label, array_to_sentence.arrayToSentence(hasErrors)].join(' ');\n        }\n      } else {\n        return Ember['default'].String.htmlSafe(errorLabel);\n      }\n    }),\n\n    actions: {\n      labelClicked: Ember['default'].K\n    }\n  });\n\n});","define('garaje/components/leaderboard-card', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'div',\n    classNameBindings: [':no-hover', 'isFirstChild:firstPlace', ':js-leaderboard-entry'],\n    isFirstChild: Ember['default'].computed.equal('index', 0),\n    today: new Date(),\n    oneBasedIndex: Ember['default'].computed('index', function () {\n      return this.get('index') + 1;\n    })\n  });\n\n});","define('garaje/components/lf-outlet', ['exports', 'liquid-fire/ember-internals'], function (exports, ember_internals) {\n\n\t'use strict';\n\n\texports['default'] = ember_internals.StaticOutlet;\n\n});","define('garaje/components/lf-overlay', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var COUNTER = '__lf-modal-open-counter';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'span',\n    classNames: ['lf-overlay'],\n\n    didInsertElement: function didInsertElement() {\n      var body = Ember['default'].$('body');\n      var counter = body.data(COUNTER) || 0;\n      body.addClass('lf-modal-open');\n      body.data(COUNTER, counter + 1);\n    },\n\n    willDestroy: function willDestroy() {\n      var body = Ember['default'].$('body');\n      var counter = body.data(COUNTER) || 0;\n      body.data(COUNTER, counter - 1);\n      if (counter < 2) {\n        body.removeClass('lf-modal-open');\n      }\n    }\n  });\n\n});","define('garaje/components/liquid-bind', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var LiquidBind = Ember['default'].Component.extend({\n    tagName: '',\n    positionalParams: ['value'] // needed for Ember 1.13.[0-5] and 2.0.0-beta.[1-3] support\n  });\n\n  LiquidBind.reopenClass({\n    positionalParams: ['value']\n  });\n\n  exports['default'] = LiquidBind;\n\n});","define('garaje/components/liquid-child', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['liquid-child'],\n\n    didInsertElement: function didInsertElement() {\n      var $container = this.$();\n      if ($container) {\n        $container.css('visibility', 'hidden');\n      }\n      this.sendAction('liquidChildDidRender', this);\n    }\n\n  });\n\n});","define('garaje/components/liquid-container', ['exports', 'ember', 'liquid-fire/growable', 'garaje/components/liquid-measured'], function (exports, Ember, Growable, liquid_measured) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Growable['default'], {\n    classNames: ['liquid-container'],\n\n    lockSize: function lockSize(elt, want) {\n      elt.outerWidth(want.width);\n      elt.outerHeight(want.height);\n    },\n\n    unlockSize: function unlockSize() {\n      var _this = this;\n\n      var doUnlock = function doUnlock() {\n        _this.updateAnimatingClass(false);\n        var elt = _this.$();\n        if (elt) {\n          elt.css({ width: '', height: '' });\n        }\n      };\n      if (this._scaling) {\n        this._scaling.then(doUnlock);\n      } else {\n        doUnlock();\n      }\n    },\n\n    // We're doing this manually instead of via classNameBindings\n    // because it depends on upward-data-flow, which generates warnings\n    // under Glimmer.\n    updateAnimatingClass: function updateAnimatingClass(on) {\n      if (this.isDestroyed || !this._wasInserted) {\n        return;\n      }\n      if (arguments.length === 0) {\n        on = this.get('liquidAnimating');\n      } else {\n        this.set('liquidAnimating', on);\n      }\n      if (on) {\n        this.$().addClass('liquid-animating');\n      } else {\n        this.$().removeClass('liquid-animating');\n      }\n    },\n\n    startMonitoringSize: Ember['default'].on('didInsertElement', function () {\n      this._wasInserted = true;\n      this.updateAnimatingClass();\n    }),\n\n    actions: {\n\n      willTransition: function willTransition(versions) {\n        if (!this._wasInserted) {\n          return;\n        }\n\n        // Remember our own size before anything changes\n        var elt = this.$();\n        this._cachedSize = liquid_measured.measure(elt);\n\n        // And make any children absolutely positioned with fixed sizes.\n        for (var i = 0; i < versions.length; i++) {\n          goAbsolute(versions[i]);\n        }\n\n        // Apply '.liquid-animating' to liquid-container allowing\n        // any customizable CSS control while an animating is occuring\n        this.updateAnimatingClass(true);\n      },\n\n      afterChildInsertion: function afterChildInsertion(versions) {\n        var elt = this.$();\n        var enableGrowth = this.get('enableGrowth') !== false;\n\n        // Measure  children\n        var sizes = [];\n        for (var i = 0; i < versions.length; i++) {\n          if (versions[i].view) {\n            sizes[i] = liquid_measured.measure(versions[i].view.$());\n          }\n        }\n\n        // Measure ourself again to see how big the new children make\n        // us.\n        var want = liquid_measured.measure(elt);\n        var have = this._cachedSize || want;\n\n        // Make ourself absolute\n        if (enableGrowth) {\n          this.lockSize(elt, have);\n        } else {\n          this.lockSize(elt, {\n            height: Math.max(want.height, have.height),\n            width: Math.max(want.width, have.width)\n          });\n        }\n\n        // Make the children absolute and fixed size.\n        for (i = 0; i < versions.length; i++) {\n          goAbsolute(versions[i], sizes[i]);\n        }\n\n        // Kick off our growth animation\n        if (enableGrowth) {\n          this._scaling = this.animateGrowth(elt, have, want);\n        }\n      },\n\n      afterTransition: function afterTransition(versions) {\n        for (var i = 0; i < versions.length; i++) {\n          goStatic(versions[i]);\n        }\n        this.unlockSize();\n      }\n    }\n  });\n\n  function goAbsolute(version, size) {\n    if (!version.view) {\n      return;\n    }\n    var elt = version.view.$();\n    var pos = elt.position();\n    if (!size) {\n      size = liquid_measured.measure(elt);\n    }\n    elt.outerWidth(size.width);\n    elt.outerHeight(size.height);\n    elt.css({\n      position: 'absolute',\n      top: pos.top,\n      left: pos.left\n    });\n  }\n\n  function goStatic(version) {\n    if (version.view && !version.view.isDestroyed) {\n      version.view.$().css({ width: '', height: '', position: '' });\n    }\n  }\n\n});","define('garaje/components/liquid-if', ['exports', 'ember', 'liquid-fire/ember-internals'], function (exports, Ember, ember_internals) {\n\n  'use strict';\n\n  var LiquidIf = Ember['default'].Component.extend({\n    positionalParams: ['predicate'], // needed for Ember 1.13.[0-5] and 2.0.0-beta.[1-3] support\n    tagName: '',\n    helperName: 'liquid-if',\n    didReceiveAttrs: function didReceiveAttrs() {\n      this._super();\n      var predicate = ember_internals.shouldDisplay(this.getAttr('predicate'));\n      this.set('showFirstBlock', this.inverted ? !predicate : predicate);\n    }\n  });\n\n  LiquidIf.reopenClass({\n    positionalParams: ['predicate']\n  });\n\n  exports['default'] = LiquidIf;\n\n});","define('garaje/components/liquid-measured', ['exports', 'liquid-fire/components/liquid-measured'], function (exports, liquid_measured) {\n\n\t'use strict';\n\n\n\n\texports['default'] = liquid_measured['default'];\n\texports.measure = liquid_measured.measure;\n\n});","define('garaje/components/liquid-modal', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['liquid-modal'],\n    currentContext: Ember['default'].computed('owner.modalContexts.lastObject', function () {\n      var context = this.get('owner.modalContexts.lastObject');\n      if (context) {\n        context.view = this.innerView(context);\n      }\n      return context;\n    }),\n\n    owner: Ember['default'].inject.service('liquid-fire-modals'),\n\n    innerView: function innerView(current) {\n      var self = this,\n          name = current.get('name'),\n          container = this.get('container'),\n          component = container.lookup('component-lookup:main').lookupFactory(name);\n      Ember['default'].assert(\"Tried to render a modal using component '\" + name + \"', but couldn't find it.\", !!component);\n\n      var args = Ember['default'].copy(current.get('params'));\n\n      args.registerMyself = Ember['default'].on('init', function () {\n        self.set('innerViewInstance', this);\n      });\n\n      // set source so we can bind other params to it\n      args._source = Ember['default'].computed(function () {\n        return current.get(\"source\");\n      });\n\n      var otherParams = current.get(\"options.otherParams\");\n      var from, to;\n      for (from in otherParams) {\n        to = otherParams[from];\n        args[to] = Ember['default'].computed.alias(\"_source.\" + from);\n      }\n\n      var actions = current.get(\"options.actions\") || {};\n\n      // Override sendAction in the modal component so we can intercept and\n      // dynamically dispatch to the controller as expected\n      args.sendAction = function (name) {\n        var actionName = actions[name];\n        if (!actionName) {\n          this._super.apply(this, Array.prototype.slice.call(arguments));\n          return;\n        }\n\n        var controller = current.get(\"source\");\n        var args = Array.prototype.slice.call(arguments, 1);\n        args.unshift(actionName);\n        controller.send.apply(controller, args);\n      };\n\n      return component.extend(args);\n    },\n\n    actions: {\n      outsideClick: function outsideClick() {\n        if (this.get('currentContext.options.dismissWithOutsideClick')) {\n          this.send('dismiss');\n        } else {\n          proxyToInnerInstance(this, 'outsideClick');\n        }\n      },\n      escape: function escape() {\n        if (this.get('currentContext.options.dismissWithEscape')) {\n          this.send('dismiss');\n        } else {\n          proxyToInnerInstance(this, 'escape');\n        }\n      },\n      dismiss: function dismiss() {\n        var source = this.get('currentContext.source'),\n            proto = source.constructor.proto(),\n            params = this.get('currentContext.options.withParams'),\n            clearThem = {};\n\n        for (var key in params) {\n          if (proto[key] instanceof Ember['default'].ComputedProperty) {\n            clearThem[key] = undefined;\n          } else {\n            clearThem[key] = proto[key];\n          }\n        }\n        source.setProperties(clearThem);\n      }\n    }\n  });\n\n  function proxyToInnerInstance(self, message) {\n    var vi = self.get('innerViewInstance');\n    if (vi) {\n      vi.send(message);\n    }\n  }\n\n});","define('garaje/components/liquid-outlet', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var LiquidOutlet = Ember['default'].Component.extend({\n    positionalParams: ['inputOutletName'], // needed for Ember 1.13.[0-5] and 2.0.0-beta.[1-3] support\n    tagName: '',\n    didReceiveAttrs: function didReceiveAttrs() {\n      this._super();\n      this.set('outletName', this.attrs.inputOutletName || 'main');\n    }\n  });\n\n  LiquidOutlet.reopenClass({\n    positionalParams: ['inputOutletName']\n  });\n\n  exports['default'] = LiquidOutlet;\n\n});","define('garaje/components/liquid-spacer', ['exports', 'liquid-fire/components/liquid-spacer'], function (exports, liquid_spacer) {\n\n\t'use strict';\n\n\n\n\texports['default'] = liquid_spacer['default'];\n\n});","define('garaje/components/liquid-unless', ['exports', 'garaje/components/liquid-if'], function (exports, LiquidIf) {\n\n  'use strict';\n\n  exports['default'] = LiquidIf['default'].extend({\n    helperName: 'liquid-unless',\n    layoutName: 'components/liquid-if',\n    inverted: true\n  });\n\n});","define('garaje/components/liquid-versions', ['exports', 'ember', 'liquid-fire/ember-internals'], function (exports, Ember, ember_internals) {\n\n  'use strict';\n\n  var get = Ember['default'].get;\n  var set = Ember['default'].set;\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: \"\",\n    name: 'liquid-versions',\n\n    transitionMap: Ember['default'].inject.service('liquid-fire-transitions'),\n\n    didReceiveAttrs: function didReceiveAttrs() {\n      this._super();\n      if (!this.versions || this._lastVersion !== this.getAttr('value')) {\n        this.appendVersion();\n        this._lastVersion = this.getAttr('value');\n      }\n    },\n\n    appendVersion: function appendVersion() {\n      var versions = this.versions;\n      var firstTime = false;\n      var newValue = this.getAttr('value');\n      var oldValue;\n\n      if (!versions) {\n        firstTime = true;\n        versions = Ember['default'].A();\n      } else {\n        oldValue = versions[0];\n      }\n\n      // TODO: may need to extend the comparison to do the same kind of\n      // key-based diffing that htmlbars is doing.\n      if (!firstTime && (!oldValue && !newValue || oldValue === newValue)) {\n        return;\n      }\n\n      this.notifyContainer('willTransition', versions);\n      var newVersion = {\n        value: newValue,\n        shouldRender: newValue || get(this, 'renderWhenFalse')\n      };\n      versions.unshiftObject(newVersion);\n\n      this.firstTime = firstTime;\n      if (firstTime) {\n        set(this, 'versions', versions);\n      }\n\n      if (!newVersion.shouldRender && !firstTime) {\n        this._transition();\n      }\n    },\n\n    _transition: function _transition() {\n      var _this = this;\n\n      var versions = get(this, 'versions');\n      var transition;\n      var firstTime = this.firstTime;\n      this.firstTime = false;\n\n      this.notifyContainer('afterChildInsertion', versions);\n\n      transition = get(this, 'transitionMap').transitionFor({\n        versions: versions,\n        parentElement: Ember['default'].$(ember_internals.containingElement(this)),\n        use: get(this, 'use'),\n        // Using strings instead of booleans here is an\n        // optimization. The constraint system can match them more\n        // efficiently, since it treats boolean constraints as generic\n        // \"match anything truthy/falsy\" predicates, whereas string\n        // checks are a direct object property lookup.\n        firstTime: firstTime ? 'yes' : 'no',\n        helperName: get(this, 'name'),\n        outletName: get(this, 'outletName')\n      });\n\n      if (this._runningTransition) {\n        this._runningTransition.interrupt();\n      }\n      this._runningTransition = transition;\n\n      transition.run().then(function (wasInterrupted) {\n        // if we were interrupted, we don't handle the cleanup because\n        // another transition has already taken over.\n        if (!wasInterrupted) {\n          _this.finalizeVersions(versions);\n          _this.notifyContainer(\"afterTransition\", versions);\n        }\n      }, function (err) {\n        _this.finalizeVersions(versions);\n        _this.notifyContainer(\"afterTransition\", versions);\n        throw err;\n      });\n    },\n\n    finalizeVersions: function finalizeVersions(versions) {\n      versions.replace(1, versions.length - 1);\n    },\n\n    notifyContainer: function notifyContainer(method, versions) {\n      var target = get(this, 'notify');\n      if (target) {\n        target.send(method, versions);\n      }\n    },\n\n    actions: {\n      childDidRender: function childDidRender(child) {\n        var version = get(child, 'version');\n        set(version, 'view', child);\n        this._transition();\n      }\n    }\n\n  });\n\n});","define('garaje/components/liquid-with', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var LiquidWith = Ember['default'].Component.extend({\n    name: 'liquid-with',\n    positionalParams: ['value'], // needed for Ember 1.13.[0-5] and 2.0.0-beta.[1-3] support\n    tagName: '',\n    iAmDeprecated: Ember['default'].on('init', function () {\n      Ember['default'].deprecate(\"liquid-with is deprecated, use liquid-bind instead -- it accepts a block now.\");\n    })\n  });\n\n  LiquidWith.reopenClass({\n    positionalParams: ['value']\n  });\n\n  exports['default'] = LiquidWith;\n\n});","define('garaje/components/lm-container', ['exports', 'ember', 'liquid-fire/tabbable'], function (exports, Ember) {\n\n  'use strict';\n\n  /*\n     Parts of this file were adapted from ic-modal\n\n     https://github.com/instructure/ic-modal\n     Released under The MIT License (MIT)\n     Copyright (c) 2014 Instructure, Inc.\n  */\n\n  var lastOpenedModal = null;\n  Ember['default'].$(document).on('focusin', handleTabIntoBrowser);\n\n  function handleTabIntoBrowser() {\n    if (lastOpenedModal) {\n      lastOpenedModal.focus();\n    }\n  }\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['lm-container'],\n    attributeBindings: ['tabindex'],\n    tabindex: 0,\n\n    keyUp: function keyUp(event) {\n      // Escape key\n      if (event.keyCode === 27) {\n        this.sendAction();\n      }\n    },\n\n    keyDown: function keyDown(event) {\n      // Tab key\n      if (event.keyCode === 9) {\n        this.constrainTabNavigation(event);\n      }\n    },\n\n    didInsertElement: function didInsertElement() {\n      this.focus();\n      lastOpenedModal = this;\n    },\n\n    willDestroy: function willDestroy() {\n      lastOpenedModal = null;\n    },\n\n    focus: function focus() {\n      if (this.get('element').contains(document.activeElement)) {\n        // just let it be if we already contain the activeElement\n        return;\n      }\n      var target = this.$('[autofocus]');\n      if (!target.length) {\n        target = this.$(':tabbable');\n      }\n\n      if (!target.length) {\n        target = this.$();\n      }\n\n      target[0].focus();\n    },\n\n    constrainTabNavigation: function constrainTabNavigation(event) {\n      var tabbable = this.$(':tabbable');\n      var finalTabbable = tabbable[event.shiftKey ? 'first' : 'last']()[0];\n      var leavingFinalTabbable = finalTabbable === document.activeElement ||\n      // handle immediate shift+tab after opening with mouse\n      this.get('element') === document.activeElement;\n      if (!leavingFinalTabbable) {\n        return;\n      }\n      event.preventDefault();\n      tabbable[event.shiftKey ? 'last' : 'first']()[0].focus();\n    },\n\n    click: function click(event) {\n      if (event.target === this.get('element')) {\n        this.sendAction('clickAway');\n      }\n    }\n  });\n\n});","define('garaje/components/load-more', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n\n    didInsertElement: function didInsertElement() {\n      var self = this;\n      var offset = 500;\n      var viewPort = this.$().parents('.employeeList');\n      var viewPortHeight = viewPort.height();\n\n      var isElementInViewport = function isElementInViewport(el) {\n        var rect = el.getBoundingClientRect();\n        return rect.bottom <= viewPortHeight + offset;\n      };\n\n      var fireIfElementVisible = function fireIfElementVisible(el, callback) {\n        return function () {\n          if (isElementInViewport(el)) {\n            callback();\n          }\n        };\n      };\n\n      var handler = fireIfElementVisible(this.get('element'), function () {\n        self.sendAction('action');\n      });\n\n      viewPort.on('DOMContentLoaded.loadMore load.loadMore resize.loadMore scroll.loadMore', handler);\n    },\n\n    willDestroy: function willDestroy() {\n      if (this && this.$()) {\n        var viewPort = this.$().parents('.employeeList');\n        viewPort.off('.loadMore');\n      }\n    }\n  });\n\n});","define('garaje/components/location-info-w-map', ['exports', 'ember', 'garaje/components/location-info'], function (exports, Ember, LocationInfo) {\n\n  'use strict';\n\n  exports['default'] = LocationInfo['default'].extend({\n    shouldDisplayMap: Ember['default'].computed('model.address', function () {\n      return window.google && !Ember['default'].isBlank(this.get('model.address'));\n    }),\n\n    actions: {\n      fadeMap: function fadeMap() {\n        this.set('isEditingAddress', true);\n      },\n\n      unfadeMap: function unfadeMap() {\n        this.set('isEditingAddress', false);\n      }\n    }\n\n  });\n\n});","define('garaje/components/location-info', ['exports', 'ember', 'ember-validations'], function (exports, Ember, Validations) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Validations['default'], {\n    addressLookup: Ember['default'].inject.service(),\n\n    placeholder: Ember['default'].computed('model.primary', 'model.company.name', {\n      get: function get() {\n        if (this.get('model.primary')) {\n          return '';\n        } else {\n          return this.get('model.company.name');\n        }\n      }\n    }).readOnly(),\n\n    companyName: Ember['default'].computed('model.companyName', 'model.primary', 'model.company.name', {\n      get: function get() {\n        var companyName = this.get('model.companyName');\n        if (this.get('model.primary') || companyName !== this.get('model.company.name')) {\n          return companyName;\n        }\n      },\n\n      set: function set(k, v) {\n        this.set('model.companyName', v);\n        var normalizedCompanyName = this.get('model.companyName');\n        return normalizedCompanyName;\n      }\n    }),\n\n    validations: {\n      'model.companyName': {\n        presence: {\n          'if': function _if(object) {\n            return object.get('model.primary');\n          }\n        }\n      },\n      'model.name': { presence: true }\n    },\n\n    inputAddressErrorMessage: null,\n\n    validated: false,\n\n    inputAddress: Ember['default'].computed.oneWay('model.address'),\n\n    didUpdateAttrs: function didUpdateAttrs(_ref) {\n      var oldAttrs = _ref.oldAttrs;\n      var newAttrs = _ref.newAttrs;\n\n      if (oldAttrs.modelId && newAttrs.modelId) {\n        if (oldAttrs.modelId.value !== newAttrs.modelId.value) {\n          this.set('inputAddress', this.get('model.address'));\n        }\n      }\n\n      if (this.get('shouldValidate')) {\n        this._triggerValidations();\n      }\n    },\n\n    clearInputAddressErrorMessage: function clearInputAddressErrorMessage() {\n      if (this.get('model.isLoaded')) {\n        this.set('inputAddressErrorMessage', null);\n      }\n    },\n\n    _triggerValidations: function _triggerValidations() {\n      this.send('validateAddress');\n      this.set('shouldValidate', false);\n    },\n\n    actions: {\n      validateAddress: function validateAddress(callback) {\n        var _this = this;\n\n        if (callback) {\n          this.set('callback', callback);\n        }\n\n        this.get('addressLookup').updateAddress(this.get('inputAddress'), this.get('model')).then(function () {\n          _this.send('validateAttributes');\n        })['catch'](function (error) {\n          var callback = _this.get('callback');\n          _this.set('inputAddressErrorMessage', error);\n          callback(Ember['default'].RSVP.reject());\n        });\n      },\n\n      validateAttributes: function validateAttributes() {\n        var _this2 = this;\n\n        this.set('validated', true);\n        var callback = this.get('callback');\n\n        this.validate().then(function () {\n          _this2.sendAction('persist', callback);\n        })['catch'](function () {\n          callback(Ember['default'].RSVP.reject());\n        });\n      },\n\n      addressDidChange: function addressDidChange() {\n        this.clearInputAddressErrorMessage();\n      }\n    }\n\n  });\n\n});","define('garaje/components/logo-uploader', ['exports', 'ember', 'garaje/utils/url-builder', 'garaje/mixins/droppable-upload'], function (exports, Ember, urlBuilder, DroppableUpload) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(DroppableUpload['default'], {\n    classNames: ['droppable', 'js-logo-upload'],\n\n    isLogoUploading: false,\n\n    logoUploadUrl: Ember['default'].computed('model.id', function () {\n      return urlBuilder['default'].v1.logoUploadUrl(this.get('model.id'));\n    }).readOnly(),\n\n    actions: {\n      toggleIsLogoUploading: function toggleIsLogoUploading() {\n        this.toggleProperty('isLogoUploading');\n      },\n\n      setLogo: function setLogo(data) {\n        var store = this.get('model.store');\n\n        store.push(store.normalize('location', {\n          id: data.location.id,\n          logo: data.location.logo\n        }));\n      },\n\n      deleteLogo: function deleteLogo() {\n        this.set('model.logo', null);\n        this.get('model').save();\n      }\n    }\n  });\n\n});","define('garaje/components/mapped-field', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Ember['default']._ProxyMixin, {\n\n    host: Ember['default'].computed('fieldData.value', {\n      get: function get() {\n        return { name: this.get('fieldData.value') };\n      },\n      set: function set(k, v) {\n        if (v) {\n          this.set('fieldData.value', Ember['default'].get(v, 'name'));\n        }\n\n        return v;\n      }\n    }),\n\n    actions: {\n      searchEmployees: function searchEmployees(query, deferred) {\n        this.sendAction('action', query, deferred);\n      }\n    }\n  });\n\n});","define('garaje/components/nda-config/component', ['exports', 'ember', 'garaje/utils/flash-promise', 'moment'], function (exports, Ember, flashPromise, moment) {\n\n  'use strict';\n\n  var escapeExpression = Ember['default'].Handlebars.Utils.escapeExpression;\n\n  exports['default'] = Ember['default'].Component.extend({\n    currentLocation: Ember['default'].inject.service(),\n\n    config: null, //pass-me in sould be ipadController\n\n    required: Ember['default'].computed.not('model.skippable'),\n    isNew: Ember['default'].computed.alias('model.isNewFragment'),\n\n    isEditingNDA: true,\n    ndaTextFormatted: null,\n\n    today: moment['default']().format('MMMM Do, YYYY'),\n\n    title: Ember['default'].computed('model.name', function () {\n      var name = this.get('model.name');\n      return Ember['default'].isBlank(name) ? '&nbsp;'.htmlSafe() : name;\n    }),\n\n    // clear the validation error as soon as the user types in something\n    nameDidChange: Ember['default'].observer('model.name', function () {\n      if (!Ember['default'].isBlank(this.get('model.name'))) {\n        this.set('shouldShowNameError', false);\n      }\n    }),\n\n    isBodyChanged: Ember['default'].computed('model.body', function () {\n      var isChanged = ('body' in this.get('model').changedAttributes());\n      this.set('requireResign', isChanged);\n      return isChanged;\n    }),\n\n    variables: Ember['default'].computed.alias('config.variables'),\n\n    actions: {\n      rollback: function rollback() {\n        this.get('model').rollbackAttributes();\n      },\n\n      save: function save(callback) {\n        var _this = this;\n\n        var promise = undefined;\n\n        if (Ember['default'].isBlank(this.get('model.name'))) {\n          this.set('shouldShowNameError', true);\n          promise = Ember['default'].RSVP.resolve();\n        } else {\n          promise = this.get('config.model').save().then(function () {\n            _this.setProperties({\n              'model.isEditing': false,\n              'model.isNewFragment': false\n            });\n          });\n        }\n\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      edit: function edit() {\n        this.set('model.isEditing', true);\n      },\n\n      'delete': function _delete(callback) {\n        var config = this.get('config.model');\n        config.get('ndas').removeObject(this.get('model'));\n        var promise;\n        if (this.get('isNew')) {\n          promise = Ember['default'].RSVP.resolve();\n          if (callback) {\n            callback(promise);\n          }\n          flashPromise['default'](promise, this);\n        } else {\n          promise = config.save();\n          callback(promise);\n          flashPromise['default'](promise, this);\n        }\n      },\n\n      setNDAPreviewActive: function setNDAPreviewActive() {\n        this.set('isEditingNDA', false);\n        this.send('formatNDAText');\n      },\n\n      setNDAEditActive: function setNDAEditActive() {\n        this.set('isEditingNDA', true);\n      },\n\n      formatNDAText: function formatNDAText() {\n        var companyName = this.get('currentLocation.companyName');\n        var date = this.get('today');\n\n        var formattedText = escapeExpression(this.get('model.body')).replace(/\\r?\\n/g, '<br>').replace(/__([A-Z\\ ]+)__/g, '__::\\$1::__').replace(/::DATE::/g, date).replace(/::COMPANY::/g, escapeExpression(companyName)).replace(/::FIELD([A-Z\\ ]+)::/g, 'Visitor:\\$1').replace(/::([A-Z\\ ]+)::/g, 'Visitor:\\$1').replace(/__(.*?)__/g, '<strong>\\$1</strong>');\n\n        this.set('ndaTextFormatted', Ember['default'].String.htmlSafe(formattedText));\n      }\n    }\n  });\n\n});","define('garaje/components/nda-config/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 12,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 14,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel js-delete-nda-button\");\n              var el2 = dom.createTextNode(\"×\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element11 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element11);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"delete\"],[],[\"loc\",[null,[13,13],[13,32]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 14,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 16,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n              var el2 = dom.createTextNode(\"×\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element10 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element10);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"close\"],[\"target\",[\"get\",\"box\",[\"loc\",[null,[15,37],[15,40]]]]],[\"loc\",[null,[15,13],[15,42]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 11,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 18,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"isNew\",[\"loc\",[null,[12,14],[12,19]]]]],[],0,1,[\"loc\",[null,[12,8],[16,15]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"save\",\"classNames\",\"btn btn--small btn--green js-save-nda-button\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[17,8],[17,131]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 18,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 20,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue js-edit-nda-button\");\n            var el2 = dom.createTextNode(\"Edit\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element9 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element9);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"edit\"],[],[\"loc\",[null,[19,63],[19,80]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 29,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 31,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              Please fill in a Purpose of Visit\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 31,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 33,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              Purpose of Visit\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child2 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 49,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 57,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"label\");\n              dom.setAttribute(el1,\"class\",\"checkbox mt1 js-require-resign\");\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"label\");\n              dom.setAttribute(el2,\"class\",\"toggle toggle--tiny\");\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"span\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n              Returning visitors must sign the new document\\n            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"requireResign\",[\"loc\",[null,[52,48],[52,61]]]]],[],[]]],[\"loc\",[null,[52,16],[52,63]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child3 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 69,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 72,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"textarea\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.body\",[\"loc\",[null,[70,29],[70,39]]]]],[],[]],\"classNames\",\"js-nda-text ndaTextArea p2 mt2 h5\"],[\"loc\",[null,[70,12],[70,88]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 72,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 107,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"div\");\n                dom.setAttribute(el1,\"class\",\"ndaPreviewWrapper\");\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"div\");\n                dom.setAttribute(el2,\"class\",\"ndaPreviewIpad\");\n                var el3 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createElement(\"div\");\n                dom.setAttribute(el3,\"class\",\"ndaPreviewIpadCamera\");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createElement(\"div\");\n                dom.setAttribute(el3,\"class\",\"ndaInnerWrapper\");\n                var el4 = dom.createTextNode(\"\\n                  \");\n                dom.appendChild(el3, el4);\n                var el4 = dom.createElement(\"div\");\n                dom.setAttribute(el4,\"class\",\"ndaPreviewTopBar\");\n                var el5 = dom.createTextNode(\"\\n                    \");\n                dom.appendChild(el4, el5);\n                var el5 = dom.createElement(\"div\");\n                dom.setAttribute(el5,\"class\",\"ndaPreviewBackArrow\");\n                dom.appendChild(el4, el5);\n                var el5 = dom.createTextNode(\"\\n                    Sign our agreement\\n                    \");\n                dom.appendChild(el4, el5);\n                var el5 = dom.createElement(\"div\");\n                dom.setAttribute(el5,\"class\",\"ndaPreviewDownArrow\");\n                dom.appendChild(el4, el5);\n                var el5 = dom.createTextNode(\"\\n                  \");\n                dom.appendChild(el4, el5);\n                dom.appendChild(el3, el4);\n                var el4 = dom.createTextNode(\"\\n                  \");\n                dom.appendChild(el3, el4);\n                var el4 = dom.createElement(\"div\");\n                dom.setAttribute(el4,\"class\",\"ndaPreview\");\n                var el5 = dom.createTextNode(\"\\n                    \");\n                dom.appendChild(el4, el5);\n                var el5 = dom.createElement(\"div\");\n                dom.setAttribute(el5,\"class\",\"js-formatted-nda-text\");\n                var el6 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el5, el6);\n                var el6 = dom.createComment(\"\");\n                dom.appendChild(el5, el6);\n                var el6 = dom.createTextNode(\"\\n                    \");\n                dom.appendChild(el5, el6);\n                dom.appendChild(el4, el5);\n                var el5 = dom.createTextNode(\"\\n\\n                    \");\n                dom.appendChild(el4, el5);\n                var el5 = dom.createElement(\"div\");\n                dom.setAttribute(el5,\"class\",\"ndaPreviewSignature clearfix\");\n                var el6 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el5, el6);\n                var el6 = dom.createElement(\"div\");\n                dom.setAttribute(el6,\"class\",\"col col-12\");\n                var el7 = dom.createTextNode(\"\\n                        \");\n                dom.appendChild(el6, el7);\n                var el7 = dom.createElement(\"label\");\n                var el8 = dom.createTextNode(\"Signature\");\n                dom.appendChild(el7, el8);\n                dom.appendChild(el6, el7);\n                var el7 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el6, el7);\n                dom.appendChild(el5, el6);\n                var el6 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el5, el6);\n                var el6 = dom.createElement(\"div\");\n                dom.setAttribute(el6,\"class\",\"col col-6 pr1\");\n                var el7 = dom.createTextNode(\"\\n                        \");\n                dom.appendChild(el6, el7);\n                var el7 = dom.createComment(\"\");\n                dom.appendChild(el6, el7);\n                var el7 = dom.createTextNode(\"\\n                        \");\n                dom.appendChild(el6, el7);\n                var el7 = dom.createElement(\"label\");\n                var el8 = dom.createTextNode(\"Name\");\n                dom.appendChild(el7, el8);\n                dom.appendChild(el6, el7);\n                var el7 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el6, el7);\n                dom.appendChild(el5, el6);\n                var el6 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el5, el6);\n                var el6 = dom.createElement(\"div\");\n                dom.setAttribute(el6,\"class\",\"col col-6 pl1\");\n                var el7 = dom.createTextNode(\"\\n                        \");\n                dom.appendChild(el6, el7);\n                var el7 = dom.createComment(\"\");\n                dom.appendChild(el6, el7);\n                var el7 = dom.createTextNode(\"\\n                        \");\n                dom.appendChild(el6, el7);\n                var el7 = dom.createElement(\"label\");\n                var el8 = dom.createTextNode(\"Date\");\n                dom.appendChild(el7, el8);\n                dom.appendChild(el6, el7);\n                var el7 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el6, el7);\n                dom.appendChild(el5, el6);\n                var el6 = dom.createTextNode(\"\\n                    \");\n                dom.appendChild(el5, el6);\n                dom.appendChild(el4, el5);\n                var el5 = dom.createTextNode(\"\\n                  \");\n                dom.appendChild(el4, el5);\n                dom.appendChild(el3, el4);\n                var el4 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el3, el4);\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createElement(\"div\");\n                dom.setAttribute(el3,\"class\",\"ndaPreviewIpadHomeButton\");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element0 = dom.childAt(fragment, [1, 1, 3]);\n                var element1 = dom.childAt(element0, [1, 3]);\n                var element2 = dom.childAt(element0, [3]);\n                var element3 = dom.childAt(element2, [3]);\n                var morphs = new Array(4);\n                morphs[0] = dom.createAttrMorph(element1, 'style');\n                morphs[1] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n                morphs[2] = dom.createMorphAt(dom.childAt(element3, [3]),1,1);\n                morphs[3] = dom.createMorphAt(dom.childAt(element3, [5]),1,1);\n                return morphs;\n              },\n              statements: [\n                [\"attribute\",\"style\",[\"get\",\"accentColor\",[\"loc\",[null,[81,61],[81,72]]]]],\n                [\"content\",\"ndaTextFormatted\",[\"loc\",[null,[85,22],[85,42]]]],\n                [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.admin.name\",[\"loc\",[null,[93,38],[93,64]]]]],[],[]]],[\"loc\",[null,[93,24],[93,66]]]],\n                [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"today\",[\"loc\",[null,[97,38],[97,43]]]]],[],[]]],[\"loc\",[null,[97,24],[97,45]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child2 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 113,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 115,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"span\");\n                dom.setAttribute(el1,\"class\",\"js-nda-variable\");\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"variable\",[\"loc\",[null,[114,48],[114,60]]]]\n              ],\n              locals: [\"variable\"],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 62,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 120,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"segmentedControlToggle\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"div\");\n              var el3 = dom.createTextNode(\"Edit text\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"div\");\n              var el3 = dom.createTextNode(\"Preview\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"ndaToolbar\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"ul\");\n              dom.setAttribute(el2,\"class\",\"ndaVariables m0 p0\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"li\");\n              var el4 = dom.createTextNode(\"Variables: (copy and paste)\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"li\");\n              var el4 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createComment(\"\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"                \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"br\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"Tip: Use underscores instead of colons for bold text. Eg.: \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"span\");\n              var el5 = dom.createTextNode(\"__NAME__\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\" instead of \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"span\");\n              var el5 = dom.createTextNode(\"::NAME::\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element4 = dom.childAt(fragment, [1]);\n              var element5 = dom.childAt(element4, [1]);\n              var element6 = dom.childAt(element4, [2]);\n              var morphs = new Array(6);\n              morphs[0] = dom.createAttrMorph(element5, 'class');\n              morphs[1] = dom.createElementMorph(element5);\n              morphs[2] = dom.createAttrMorph(element6, 'class');\n              morphs[3] = dom.createElementMorph(element6);\n              morphs[4] = dom.createMorphAt(fragment,3,3,contextualElement);\n              morphs[5] = dom.createMorphAt(dom.childAt(fragment, [5, 1, 3]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"class\",[\"concat\",[\"segmentedControlLeft \",[\"subexpr\",\"if\",[[\"get\",\"isEditingNDA\",[\"loc\",[null,[66,80],[66,92]]]],\"selected\"],[],[\"loc\",[null,[66,75],[66,105]]]]]]],\n              [\"element\",\"action\",[\"setNDAEditActive\"],[],[\"loc\",[null,[66,17],[66,46]]]],\n              [\"attribute\",\"class\",[\"concat\",[\"segmentedControlRight \",[\"subexpr\",\"unless\",[[\"get\",\"isEditingNDA\",[\"loc\",[null,[66,198],[66,210]]]],\"selected\"],[],[\"loc\",[null,[66,189],[66,223]]]]]]],\n              [\"element\",\"action\",[\"setNDAPreviewActive\"],[],[\"loc\",[null,[66,127],[66,159]]]],\n              [\"block\",\"if\",[[\"get\",\"isEditingNDA\",[\"loc\",[null,[69,16],[69,28]]]]],[],0,1,[\"loc\",[null,[69,10],[107,17]]]],\n              [\"block\",\"each\",[[\"get\",\"variables\",[\"loc\",[null,[113,24],[113,33]]]]],[\"key\",\"@index\"],2,null,[\"loc\",[null,[113,16],[115,25]]]]\n            ],\n            locals: [],\n            templates: [child0, child1, child2]\n          };\n        }());\n        var child4 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 123,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 130,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"delete\",\"class\",\"btn btn--small btn--redOutlineFill right m1 js-delete-nda-button\",\"default\",\"Delete\",\"pending\",\"Deleting...\"],[\"loc\",[null,[124,8],[129,10]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 23,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 133,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"col col-6\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"label\");\n            dom.setAttribute(el3,\"for\",\"_pov-name\");\n            var el4 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"label\");\n            dom.setAttribute(el3,\"class\",\"checkbox\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"label\");\n            dom.setAttribute(el4,\"class\",\"toggle toggle--tiny\");\n            var el5 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"span\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            Skip Agreement\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"narrowerNdaEditor\");\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element7 = dom.childAt(fragment, [1, 1]);\n            var element8 = dom.childAt(element7, [1]);\n            var morphs = new Array(7);\n            morphs[0] = dom.createAttrMorph(element8, 'class');\n            morphs[1] = dom.createMorphAt(element8,1,1);\n            morphs[2] = dom.createMorphAt(element7,3,3);\n            morphs[3] = dom.createMorphAt(dom.childAt(element7, [5, 1]),1,1);\n            morphs[4] = dom.createMorphAt(element7,7,7);\n            morphs[5] = dom.createMorphAt(dom.childAt(fragment, [3]),1,1);\n            morphs[6] = dom.createMorphAt(fragment,5,5,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"shouldShowNameError\",[\"loc\",[null,[28,44],[28,63]]]],\"error-description\"],[],[\"loc\",[null,[28,39],[28,85]]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"shouldShowNameError\",[\"loc\",[null,[29,25],[29,44]]]]],[\"class\",\"js-tokenized\"],0,1,[\"loc\",[null,[29,12],[33,26]]]],\n            [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.name\",[\"loc\",[null,[36,16],[36,26]]]]],[],[]],\"id\",\"_pov-name\",\"class\",[\"subexpr\",\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"shouldShowNameError\",[]],\"error\"],[],[]],\" \",\"js-nda-title\",\" \"],[],[]]],[\"loc\",[null,[35,10],[39,12]]]],\n            [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.skippable\",[\"loc\",[null,[43,46],[43,61]]]]],[],[]]],[\"loc\",[null,[43,14],[43,63]]]],\n            [\"block\",\"if\",[[\"get\",\"isBodyChanged\",[\"loc\",[null,[49,16],[49,29]]]]],[],2,null,[\"loc\",[null,[49,10],[57,17]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"required\",[\"loc\",[null,[62,21],[62,29]]]]],[\"class\",\"js-tokenized columns\"],3,null,[\"loc\",[null,[62,8],[120,22]]]],\n            [\"block\",\"unless\",[[\"get\",\"isNew\",[\"loc\",[null,[123,16],[123,21]]]]],[],4,null,[\"loc\",[null,[123,6],[130,17]]]]\n          ],\n          locals: [],\n          templates: [child0, child1, child2, child3, child4]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 135,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-nda\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/features/user.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Purpose of Visit\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element12 = dom.childAt(fragment, [1]);\n          var element13 = dom.childAt(element12, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element13, [3, 1]),0,0);\n          morphs[1] = dom.createMorphAt(element13,5,5);\n          morphs[2] = dom.createMorphAt(element12,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"title\",[\"loc\",[null,[8,12],[8,21]]]],\n          [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[11,12],[11,22]]]]],[],0,1,[\"loc\",[null,[11,6],[20,13]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[23,17],[23,27]]]]],[\"class\",\"js-tokenized\"],2,null,[\"loc\",[null,[23,4],[133,18]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1, child2]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 136,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/components/nda-config/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isEditing\",[\"loc\",[null,[1,24],[1,39]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"model.hasDirtyAttributes\",[\"loc\",[null,[1,48],[1,72]]]]],[],[]],\"rollback\",\"rollback\"],0,null,[\"loc\",[null,[1,0],[135,18]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/components/nf-area-stack', ['exports', 'ember', 'ember-new-computed'], function (exports, Ember, computed) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'g',\n\n    /**\n      Used by `nf-area` to identify an area stack parent\n      @property isAreaStack\n      @type Boolean\n      @default true\n      @readonly\n    */\n    isAreaStack: true,\n\n    /**\n      Whether or not to add the values together to create the stacked area\n      @property aggregate\n      @type {boolean}\n      @default false\n    */\n    aggregate: computed['default']({\n      get: function get() {\n        Ember['default'].warn('nf-area-stack.aggregate must be set. Currently defaulting to `false` but will default to `true` in the future.');\n        return this._aggregate = false;\n      },\n      set: function set(key, value) {\n        return this._aggregate = value;\n      }\n    }),\n\n    /**\n      The collection of `nf-area` components under this stack.\n      @property areas\n      @type Array\n      @readonly\n    */\n    areas: computed['default'](function () {\n      return Ember['default'].A();\n    }),\n\n    /**\n      Registers an area component with this stack. Also links areas to one\n      another by setting `nextArea` on each area component.\n      @method registerArea\n      @param area {Ember.Component} The area component to register.\n    */\n    registerArea: function registerArea(area) {\n      var areas = this.get('areas');\n      var prev = areas[areas.length - 1];\n\n      if (prev) {\n        prev.set('nextArea', area);\n        area.set('prevArea', prev);\n      }\n\n      areas.pushObject(area);\n    },\n\n    /**\n      Unregisters an area component from this stack. Also updates next\n      and previous links.\n      @method unregisterArea\n      @param area {Ember.Component} the area to unregister\n    */\n    unregisterArea: function unregisterArea(area) {\n      var prev = area.get('prevArea');\n      var next = area.get('nextArea');\n\n      if (next) {\n        next.set('prevArea', prev);\n      }\n\n      if (prev) {\n        prev.set('nextArea', next);\n      }\n\n      this.get('areas').removeObject(area);\n    }\n  });\n\n});","define('garaje/components/nf-area', ['exports', 'ember', 'ember-nf-graph/mixins/graph-selectable-graphic', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-registered-graphic', 'ember-nf-graph/mixins/graph-data-graphic', 'ember-nf-graph/mixins/graph-area-utils', 'ember-nf-graph/mixins/graph-graphic-with-tracking-dot', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/mixins/graph-line-utils'], function (exports, Ember, Selectable, HasGraphParent, RegisteredGraphic, DataGraphic, AreaUtils, GraphicWithTrackingDot, RequireScaleSource, LineUtils) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RegisteredGraphic['default'], DataGraphic['default'], Selectable['default'], AreaUtils['default'], GraphicWithTrackingDot['default'], RequireScaleSource['default'], LineUtils['default'], {\n\n    tagName: 'g',\n\n    classNameBindings: [':nf-area', 'selected', 'selectable'],\n\n    /**\n      The type of d3 interpolator to use to create the area\n      @property interpolator\n      @type String\n      @default 'linear'\n    */\n    interpolator: 'linear',\n\n    /**\n      The previous area in the stack, if this area is part of an `nf-area-stack`\n      @property prevArea\n      @type components.nf-area\n      @default null\n    */\n    prevArea: null,\n\n    /**\n      The next area in the stack, if this area is part of an `nf-area-stack`\n      @property nextArea\n      @type components.nf-area\n      @default null\n    */\n    nextArea: null,\n\n    init: function init() {\n      this._super.apply(this, arguments);\n      var stack = this.nearestWithProperty('isAreaStack');\n      if (stack) {\n        stack.registerArea(this);\n        this.set('stack', stack);\n      }\n    },\n\n    /**\n      Override from `graph-data-graphic` mixin\n      @method getActualTrackData\n    */\n    getActualTrackData: function getActualTrackData(renderX, renderY, data) {\n      return {\n        x: this.get('xPropFn')(data),\n        y: this.get('yPropFn')(data)\n      };\n    },\n\n    _unregisterArea: Ember['default'].on('willDestroyElement', function () {\n      var stack = this.get('stack', stack);\n      if (stack) {\n        stack.unregisterArea(this);\n      }\n    }),\n\n    /**\n      The computed set of next y values to use for the \"bottom\" of the graphed area.\n      If the area is part of a stack, this will be the \"top\" of the next area in the stack,\n      otherwise it will return an array of values at the \"bottom\" of the graph domain.\n      @property nextYData\n      @type Array\n      @readonly\n    */\n    nextYData: Ember['default'].computed('data.length', 'nextArea.data.[]', function () {\n      var data = this.get('data');\n      if (!Array.isArray(data)) {\n        return [];\n      }\n      var nextData = this.get('nextArea.mappedData');\n      return data.map(function (d, i) {\n        return nextData && nextData[i] && nextData[i][1] || Number.MIN_VALUE;\n      });\n    }),\n\n    /**\n      The current rendered data \"zipped\" together with the nextYData.\n      @property mappedData\n      @type Array\n      @readonly\n    */\n    mappedData: Ember['default'].computed('data.[]', 'xPropFn', 'yPropFn', 'nextYData.[]', 'stack.aggregate', function () {\n      var _getProperties = this.getProperties('data', 'xPropFn', 'yPropFn', 'nextYData');\n\n      var data = _getProperties.data;\n      var xPropFn = _getProperties.xPropFn;\n      var yPropFn = _getProperties.yPropFn;\n      var nextYData = _getProperties.nextYData;\n\n      var aggregate = this.get('stack.aggregate');\n      if (Array.isArray(data)) {\n        return data.map(function (d, i) {\n          var x = xPropFn(d);\n          var y = yPropFn(d);\n          var result = aggregate ? [x, y + nextYData[i], nextYData[i]] : [x, y, nextYData[i]];\n          result.data = d;\n          return result;\n        });\n      } else {\n        return [];\n      }\n    }),\n\n    areaFn: Ember['default'].computed('xScale', 'yScale', 'interpolator', function () {\n      var _getProperties2 = this.getProperties('xScale', 'yScale', 'interpolator');\n\n      var xScale = _getProperties2.xScale;\n      var yScale = _getProperties2.yScale;\n      var interpolator = _getProperties2.interpolator;\n\n      return this.createAreaFn(xScale, yScale, interpolator);\n    }),\n\n    lineFn: Ember['default'].computed('xScale', 'yScale', 'interpolator', function () {\n      var _getProperties3 = this.getProperties('xScale', 'yScale', 'interpolator');\n\n      var xScale = _getProperties3.xScale;\n      var yScale = _getProperties3.yScale;\n      var interpolator = _getProperties3.interpolator;\n\n      return this.createLineFn(xScale, yScale, interpolator);\n    }),\n\n    d: Ember['default'].computed('renderedData', 'areaFn', function () {\n      var renderedData = this.get('renderedData');\n      return this.get('areaFn')(renderedData);\n    }),\n\n    dLine: Ember['default'].computed('renderedData', 'lineFn', function () {\n      var renderedData = this.get('renderedData');\n      return this.get('lineFn')(renderedData);\n    }),\n\n    click: function click() {\n      if (this.get('selectable')) {\n        this.toggleProperty('selected');\n      }\n    }\n  });\n\n});","define('garaje/components/nf-bars-group', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequiresScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequiresScaleSource['default'], {\n    tagName: 'g',\n\n    isBarsGroup: true,\n\n    groupPadding: 0.1,\n\n    groupOuterPadding: 0,\n\n    // either b-arses or fat, stupid hobbitses\n    barses: Ember['default'].computed(function () {\n      return Ember['default'].A();\n    }),\n\n    registerBars: function registerBars(bars) {\n      var barses = this.get('barses');\n      barses.pushObject(bars);\n      bars.set('group', this);\n      bars.set('groupIndex', barses.length - 1);\n    },\n\n    unregisterBars: function unregisterBars(bars) {\n      if (bars) {\n        bars.set('group', undefined);\n        bars.set('groupIndex', undefined);\n        this.get('barses').removeObject(bars);\n      }\n    },\n\n    groupWidth: Ember['default'].computed('xScale', function () {\n      var xScale = this.get('xScale');\n      return xScale && xScale.rangeBand ? xScale.rangeBand() : NaN;\n    }),\n\n    barsDomain: Ember['default'].computed('barses.[]', function () {\n      var len = this.get('barses.length') || 0;\n      return d3.range(len);\n    }),\n\n    barScale: Ember['default'].computed('groupWidth', 'barsDomain.[]', 'groupPadding', 'groupOuterPadding', function () {\n      var barsDomain = this.get('barsDomain');\n      var groupWidth = this.get('groupWidth');\n      var groupPadding = this.get('groupPadding');\n      var groupOuterPadding = this.get('groupOuterPadding');\n      return d3.scale.ordinal().domain(barsDomain).rangeBands([0, groupWidth], groupPadding, groupOuterPadding);\n    }),\n\n    barsWidth: function barsWidth() {\n      var scale = this.get('barScale');\n      return scale && scale.rangeBand ? scale.rangeBand() : NaN;\n    }\n  });\n\n});","define('garaje/components/nf-bars', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-data-graphic', 'ember-nf-graph/mixins/graph-registered-graphic', 'ember-nf-graph/utils/parse-property-expression', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/mixins/graph-graphic-with-tracking-dot', 'ember-nf-graph/utils/nf/scale-utils', 'ember-nf-graph/utils/nf/svg-dom'], function (exports, Ember, HasGraphParent, DataGraphic, RegisteredGraphic, parsePropExpr, RequireScaleSource, GraphicWithTrackingDot, scale_utils, svg_dom) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RegisteredGraphic['default'], DataGraphic['default'], RequireScaleSource['default'], GraphicWithTrackingDot['default'], {\n    tagName: 'g',\n\n    classNames: ['nf-bars'],\n\n    _showTrackingDot: false,\n\n    /**\n      The name of the property on each data item containing the className for the bar rectangle\n      @property classprop\n      @type String\n      @default 'className'\n    */\n    classprop: 'className',\n\n    /**\n      Gets the function to get the classname from each data item.\n      @property getBarClass\n      @readonly\n      @private\n    */\n    getBarClass: Ember['default'].computed('classprop', function () {\n      var classprop = this.get('classprop');\n      return classprop ? parsePropExpr['default'](classprop) : null;\n    }),\n\n    /**\n      The nf-bars-group this belongs to, if any.\n      @property group\n      @type components.nf-bars-group\n      @default null\n    */\n    group: null,\n\n    /**\n      The index of this component within the group, if any.\n      @property groupIndex\n      @type Number\n      @default null\n    */\n    groupIndex: null,\n\n    /**\n      The graph content height\n      @property graphHeight\n      @type Number\n      @readonly\n    */\n    graphHeight: Ember['default'].computed.oneWay('graph.graphHeight'),\n\n    /**\n      A scale provided by nf-bars-group to offset the bar rectangle output\n      @property barScale\n      @type d3.scale\n      @readonly\n    */\n    barScale: Ember['default'].computed.oneWay('group.barScale'),\n\n    /**\n      The width of each bar.\n      @property barWidth\n      @type Number\n      @readonly\n    */\n    barWidth: Ember['default'].computed('xScale', 'barScale', function () {\n      var barScale = this.get('barScale');\n      if (barScale) {\n        return barScale.rangeBand();\n      }\n      var xScale = this.get('xScale');\n      return xScale && xScale.rangeBand ? xScale.rangeBand() : 0;\n    }),\n\n    groupOffsetX: Ember['default'].computed('barScale', 'groupIndex', function () {\n      var barScale = this.get('barScale');\n      var groupIndex = this.get('groupIndex');\n      return scale_utils.normalizeScale(barScale, groupIndex);\n    }),\n\n    /**\n      The bar models used to render the bars.\n      @property bars\n      @readonly\n    */\n    bars: Ember['default'].computed('xScale', 'yScale', 'renderedData.[]', 'graphHeight', 'getBarClass', 'barWidth', 'groupOffsetX', function () {\n      var _getProperties = this.getProperties('renderedData', 'xScale', 'yScale', 'graphHeight', 'getBarClass', 'groupOffsetX', 'barWidth');\n\n      var renderedData = _getProperties.renderedData;\n      var xScale = _getProperties.xScale;\n      var yScale = _getProperties.yScale;\n      var barWidth = _getProperties.barWidth;\n      var graphHeight = _getProperties.graphHeight;\n      var getBarClass = _getProperties.getBarClass;\n      var groupOffsetX = _getProperties.groupOffsetX;\n\n      var getRectPath = this._getRectPath;\n\n      if (!xScale || !yScale || !Ember['default'].isArray(renderedData)) {\n        return null;\n      }\n\n      var w = barWidth;\n\n      return Ember['default'].A(renderedData.map(function (data) {\n        var className = 'nf-bars-bar' + (getBarClass ? ' ' + getBarClass(data.data) : '');\n        var x = scale_utils.normalizeScale(xScale, data[0]) + groupOffsetX;\n        var y = scale_utils.normalizeScale(yScale, data[1]);\n        var h = graphHeight - y;\n        var path = getRectPath(x, y, w, h);\n\n        return { path: path, className: className, data: data };\n      }));\n    }),\n\n    _getRectPath: svg_dom.getRectPath,\n\n    /**\n      The name of the action to fire when a bar is clicked.\n      @property barClick\n      @type String\n      @default null\n    */\n    barClick: null,\n\n    init: function init() {\n      this._super.apply(this, arguments);\n      var group = this.nearestWithProperty('isBarsGroup');\n      if (group && group.registerBars) {\n        group.registerBars(this);\n      }\n    },\n\n    actions: {\n      nfBarClickBar: function nfBarClickBar(dataPoint) {\n        if (this.get('barClick')) {\n          this.sendAction('barClick', {\n            data: dataPoint.data,\n            x: dataPoint[0],\n            y: dataPoint[1],\n            source: this,\n            graph: this.get('graph')\n          });\n        }\n      }\n    }\n\n  });\n\n});","define('garaje/components/nf-brush-selection', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequiresScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequiresScaleSource['default'], {\n    tagName: 'g',\n\n    left: undefined,\n\n    right: undefined,\n\n    formatter: null,\n\n    textPadding: 3,\n\n    autoWireUp: true,\n\n    _autoBrushHandler: function _autoBrushHandler(e) {\n      this.set('left', Ember['default'].get(e, 'left.x'));\n      this.set('right', Ember['default'].get(e, 'right.x'));\n    },\n\n    _autoBrushEndHandler: function _autoBrushEndHandler(e) {\n      this.set('left', undefined);\n      this.set('right', undefined);\n    },\n\n    _wireToGraph: function _wireToGraph() {\n      var graph = this.get('graph');\n      var auto = this.get('autoWireUp');\n\n      if (auto) {\n        graph.on('didBrushStart', this, this._autoBrushHandler);\n        graph.on('didBrush', this, this._autoBrushHandler);\n        graph.on('didBrushEnd', this, this._autoBrushEndHandler);\n      } else {\n        graph.off('didBrushStart', this, this._autoBrushHandler);\n        graph.off('didBrush', this, this._autoBrushHandler);\n        graph.off('didBrushEnd', this, this._autoBrushEndHandler);\n      }\n    },\n\n    _autoWireUpChanged: Ember['default'].on('didInsertElement', Ember['default'].observer('autoWireUp', function () {\n      Ember['default'].run.once(this, this._wireToGraph);\n    })),\n\n    _updateLeftText: function _updateLeftText() {\n      var root = d3.select(this.element);\n      var g = root.select('.nf-brush-selection-left-display');\n      var text = g.select('.nf-brush-selection-left-text');\n      var bg = g.select('.nf-brush-selection-left-text-bg');\n\n      var display = this.get('leftDisplay');\n\n      if (!display) {\n        g.attr('hidden', true);\n      } else {\n        g.attr('hidden', null);\n      }\n\n      text.text(display);\n\n      Ember['default'].run.scheduleOnce('afterRender', this, function () {\n        var textPadding = this.get('textPadding');\n        var leftX = this.get('leftX');\n        var graphHeight = this.get('graphHeight');\n        var bbox;\n\n        try {\n          bbox = text[0][0].getBBox();\n        } catch (error) {\n\n          // NS_ERROR_FAILURE will appear in Firefox if text[0][0] is\n          // not yet in the DOM, see\n          // https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n          //\n          //\n\n          if (error.name === \"NS_ERROR_FAILURE\") {\n\n            // If this is the error then don't do anything and return.\n            // it will get call in the cycle\n            return;\n          } else {\n            throw error;\n          }\n        }\n\n        var doublePad = textPadding * 2;\n        var width = bbox.width + doublePad;\n        var height = bbox.height + doublePad;\n        var x = Math.max(0, leftX - width);\n        var y = graphHeight - height;\n\n        g.attr('transform', 'translate(' + x + ' ' + y + ')');\n\n        text.attr('x', textPadding).attr('y', textPadding);\n\n        bg.attr('width', width).attr('height', height);\n      });\n    },\n\n    _onLeftChange: Ember['default'].on('didInsertElement', Ember['default'].observer('left', 'graphHeight', 'textPadding', function () {\n      Ember['default'].run.once(this, this._updateLeftText);\n    })),\n\n    _updateRightText: function _updateRightText() {\n      var root = d3.select(this.element);\n      var g = root.select('.nf-brush-selection-right-display');\n      var text = g.select('.nf-brush-selection-right-text');\n      var bg = g.select('.nf-brush-selection-right-text-bg');\n\n      var display = this.get('rightDisplay');\n\n      if (!display) {\n        g.attr('hidden', true);\n      } else {\n        g.attr('hidden', null);\n      }\n\n      text.text(display);\n\n      Ember['default'].run.scheduleOnce('afterRender', this, function () {\n        var textPadding = this.get('textPadding');\n        var rightX = this.get('rightX');\n        var graphHeight = this.get('graphHeight');\n        var graphWidth = this.get('graphWidth');\n        var bbox;\n\n        try {\n          bbox = text[0][0].getBBox();\n        } catch (error) {\n\n          // NS_ERROR_FAILURE will appear in Firefox if text[0][0] is\n          // not yet in the DOM, see\n          // https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n          //\n          //\n\n          if (error.name === \"NS_ERROR_FAILURE\") {\n\n            // If this is the error then don't do anything and return.\n            // it will get call in the cycle\n            return;\n          } else {\n            throw error;\n          }\n        }\n\n        var doublePad = textPadding * 2;\n        var width = bbox.width + doublePad;\n        var height = bbox.height + doublePad;\n        var x = Math.min(graphWidth - width, rightX);\n        var y = graphHeight - height;\n\n        g.attr('transform', 'translate(' + x + ' ' + y + ')');\n\n        text.attr('x', textPadding).attr('y', textPadding);\n\n        bg.attr('width', width).attr('height', height);\n      });\n    },\n\n    _onRightChange: Ember['default'].on('didInsertElement', Ember['default'].observer('right', 'graphHeight', 'graphWidth', 'textPadding', function () {\n      Ember['default'].run.once(this, this._updateRightText);\n    })),\n\n    leftDisplay: Ember['default'].computed('left', 'formatter', function () {\n      var formatter = this.get('formatter');\n      var left = this.get('left');\n      return formatter ? formatter(left) : left;\n    }),\n\n    rightDisplay: Ember['default'].computed('right', 'formatter', function () {\n      var formatter = this.get('formatter');\n      var right = this.get('right');\n      return formatter ? formatter(right) : right;\n    }),\n\n    isVisible: Ember['default'].computed('left', 'right', function () {\n      var left = +this.get('left');\n      var right = +this.get('right');\n      return left === left && right === right;\n    }),\n\n    leftX: Ember['default'].computed('xScale', 'left', function () {\n      var left = this.get('left') || 0;\n      var scale = this.get('xScale');\n      return scale ? scale(left) : 0;\n    }),\n\n    rightX: Ember['default'].computed('xScale', 'right', function () {\n      var right = this.get('right') || 0;\n      var scale = this.get('xScale');\n      return scale ? scale(right) : 0;\n    }),\n\n    graphWidth: Ember['default'].computed.alias('graph.graphWidth'),\n\n    graphHeight: Ember['default'].computed.alias('graph.graphHeight'),\n\n    rightWidth: Ember['default'].computed('rightX', 'graphWidth', function () {\n      return this.get('graphWidth') - this.get('rightX') || 0;\n    })\n  });\n\n});","define('garaje/components/nf-crosshair', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent'], function (exports, Ember, HasGraphParent) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], {\n    tagName: 'g',\n\n    classNames: ['nf-crosshair'],\n\n    /**\n      The height of the crosshair in pixels\n      @property height\n      @type Number\n      @readonly\n    */\n    height: Ember['default'].computed.alias('graph.graphHeight'),\n\n    /**\n      The width of the crosshair in pixels\n      @property width\n      @type Number\n      @readonly\n    */\n    width: Ember['default'].computed.alias('graph.graphWidth'),\n\n    /**\n      The x position of the crosshairs\n      @property x\n      @type Number\n      @default 0\n    */\n    x: 0,\n\n    /**\n      The y position of the crosshairs\n      @property y\n      @type Number\n      @default 0\n    */\n    y: 0,\n\n    /**\n      The visibility of the component\n      @property isVisible\n      @type Boolean\n      @default false\n    */\n    isVisible: false,\n\n    didContentHoverChange: function didContentHoverChange(e) {\n      this.set('isVisible', true);\n      this.set('x', e.get('mouseX'));\n      this.set('y', e.get('mouseY'));\n    },\n\n    didContentHoverEnd: function didContentHoverEnd() {\n      this.set('isVisible', false);\n    },\n\n    _setupBindings: Ember['default'].observer('graph.content', function () {\n      var content = this.get('graph.content');\n      if (content) {\n        content.on('didHoverChange', this, this.didContentHoverChange);\n        content.on('didHoverEnd', this, this.didContentHoverEnd);\n      }\n    })\n  });\n\n});","define('garaje/components/nf-dot', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'circle',\n\n    attributeBindings: ['r', 'cy', 'cx'],\n\n    /**\n      The x domain value at which to plot the circle\n      @property x\n      @type Number\n      @default null\n    */\n    x: null,\n\n    /**\n      The y domain value at which to plot the circle\n      @property x\n      @type Number\n      @default null\n    */\n    y: null,\n\n    /**\n      The radius of the circle plotted\n      @property r\n      @type Number\n      @default 2.5\n    */\n    r: 2.5,\n\n    hasX: Ember['default'].computed.notEmpty('x'),\n\n    hasY: Ember['default'].computed.notEmpty('y'),\n\n    /**\n      The computed center x coordinate of the circle\n      @property cx\n      @type Number\n      @private\n      @readonly\n    */\n    cx: Ember['default'].computed('x', 'xScale', 'hasX', function () {\n      var x = this.get('x');\n      var xScale = this.get('xScale');\n      var hasX = this.get('hasX');\n      return hasX && xScale ? xScale(x) : -1;\n    }),\n\n    /**\n      The computed center y coordinate of the circle\n      @property cy\n      @type Number\n      @private\n      @readonly\n    */\n    cy: Ember['default'].computed('y', 'yScale', 'hasY', function () {\n      var y = this.get('y');\n      var yScale = this.get('yScale');\n      var hasY = this.get('hasY');\n      return hasY && yScale ? yScale(y) : -1;\n    }),\n\n    /**\n      Toggles the visibility of the dot. If x or y are\n      not numbers, will return false.\n      @property isVisible\n      @private\n      @readonly\n    */\n    isVisible: Ember['default'].computed.and('hasX', 'hasY')\n  });\n\n});","define('garaje/components/nf-gg', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/mixins/graph-selectable-graphic'], function (exports, Ember, HasGraphParent, RequireScaleSource, SelectableGraphic) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], SelectableGraphic['default'], {\n    tagName: 'g',\n\n    classNameBindings: [':nf-gg', 'selectable', 'selected'],\n\n    isScaleSource: true,\n\n    click: function click() {\n      if (this.get('selectable')) {\n        this.toggleProperty('selected');\n      }\n    }\n  });\n\n});","define('garaje/components/nf-graph-content', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/utils/nf/graph-mouse-event'], function (exports, Ember, HasGraphParent, GraphMouseEvent) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], {\n    tagName: 'g',\n\n    classNames: ['nf-graph-content'],\n\n    attributeBindings: ['transform', 'clip-path'],\n\n    'clip-path': Ember['default'].computed('graph.contentClipPathId', function () {\n      var clipPathId = this.get('graph.contentClipPathId');\n      return 'url(\\'#' + clipPathId + '\\')';\n    }),\n\n    /**\n      The SVG transform for positioning the graph content\n      @property transform\n      @type String\n      @readonly\n    */\n    transform: Ember['default'].computed('x', 'y', function () {\n      var x = this.get('x');\n      var y = this.get('y');\n      return 'translate(' + x + ' ' + y + ')';\n    }),\n\n    /**\n      The x position of the graph content\n      @property x\n      @type Number\n      @readonly\n    */\n    x: Ember['default'].computed.alias('graph.graphX'),\n\n    /**\n      The calculated y position of the graph content\n      @property y\n      @type Number\n      @readonly\n    */\n    y: Ember['default'].computed.alias('graph.graphY'),\n\n    /**\n      The calculated width of the graph content\n      @property width\n      @type Number\n      @readonly\n    */\n    width: Ember['default'].computed.alias('graph.graphWidth'),\n\n    /**\n      The calculated height of the graph content.\n      @property height\n      @type Number\n      @readonly\n    */\n    height: Ember['default'].computed.alias('graph.graphHeight'),\n\n    /**\n      An array containing models to render the grid lanes\n      @property gridLanes\n      @type Array\n      @readonly\n    */\n    gridLanes: Ember['default'].computed('graph.yAxis.ticks.[]', 'width', 'height', function () {\n      var ticks = this.get('graph.yAxis.ticks');\n      var width = this.get('width');\n      var height = this.get('height');\n\n      if (!ticks || ticks.length === 0) {\n        return Ember['default'].A();\n      }\n\n      var sorted = ticks.slice().sort(function (a, b) {\n        return a.y - b.y;\n      });\n\n      if (sorted[0].y !== 0) {\n        sorted.unshift({ y: 0 });\n      }\n\n      var lanes = sorted.reduce(function (lanes, tick, i) {\n        var y = tick.y;\n        var next = sorted[i + 1] || { y: height };\n        var h = next.y - tick.y;\n        lanes.push({\n          x: 0,\n          y: y,\n          width: width,\n          height: h\n        });\n        return lanes;\n      }, []);\n\n      return Ember['default'].A(lanes);\n    }),\n\n    /**\n      The name of the hoverChange action to fire\n      @property hoverChange\n      @type String\n      @default null\n    */\n    hoverChange: null,\n\n    mouseMove: function mouseMove(e) {\n      var context = GraphMouseEvent['default'].create({\n        originalEvent: e,\n        source: this,\n        graphContentElement: this.element\n      });\n\n      this.trigger('didHoverChange', context);\n\n      if (this.get('hoverChange')) {\n        this.sendAction('hoverChange', context);\n      }\n    },\n\n    /**\n      The name of the hoverEnd action to fire\n      @property hoverEnd\n      @type String\n      @default null\n    */\n    hoverEnd: null,\n\n    mouseLeave: function mouseLeave(e) {\n      var context = GraphMouseEvent['default'].create({\n        originalEvent: e,\n        source: this,\n        graphContentElement: this.element\n      });\n      this.trigger('didHoverEnd', context);\n\n      if (this.get('hoverEnd')) {\n        this.sendAction('hoverEnd', context);\n      }\n    },\n\n    /**\n      An array containing models to render fret lines\n      @property frets\n      @type Array\n      @readonly\n    */\n    frets: Ember['default'].computed.alias('graph.xAxis.ticks.[]'),\n\n    init: function init() {\n      this._super.apply(this, arguments);\n      this.set('graph.content', this);\n    }\n  });\n\n});","define('garaje/components/nf-graph', ['exports', 'ember-nf-graph/utils/nf/graph-position', 'ember-nf-graph/utils/nf/svg-dom', 'ember-nf-graph/utils/nf/array-helpers', 'ember-new-computed', 'ember'], function (exports, GraphPosition, svg_dom, array_helpers, computed, Ember) {\n\n  'use strict';\n\n  var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\n  var Observable = Rx.Observable;\n\n  var computedBool = computed['default'].bool;\n\n  var scaleFactoryProperty = function scaleFactoryProperty(axis) {\n    var scaleTypeKey = axis + 'ScaleType';\n    var powExponentKey = axis + 'PowerExponent';\n\n    return computed['default'](scaleTypeKey, powExponentKey, function () {\n      var type = this.get(scaleTypeKey);\n      var powExp = this.get(powExponentKey);\n\n      type = typeof type === 'string' ? type.toLowerCase() : '';\n\n      if (type === 'linear') {\n        return d3.scale.linear;\n      } else if (type === 'ordinal') {\n        return function () {\n          var scale = d3.scale.ordinal();\n          // ordinal scales don't have an invert function, so we need to add one\n          scale.invert = function (rv) {\n            var _d3$extent = d3.extent(scale.range());\n\n            var _d3$extent2 = _slicedToArray(_d3$extent, 2);\n\n            var min = _d3$extent2[0];\n            var max = _d3$extent2[1];\n\n            var domain = scale.domain();\n            var i = Math.round((domain.length - 1) * (rv - min) / (max - min));\n            return domain[i];\n          };\n          return scale;\n        };\n      } else if (type === 'power' || type === 'pow') {\n        return function () {\n          return d3.scale.pow().exponent(powExp);\n        };\n      } else if (type === 'log') {\n        return d3.scale.log;\n      } else {\n        Ember['default'].warn('unknown scale type: ' + type);\n        return d3.scale.linear;\n      }\n    });\n  };\n\n  var domainProperty = function domainProperty(axis) {\n    var dataKey = axis + 'UniqueData';\n    var minKey = axis + 'Min';\n    var maxKey = axis + 'Max';\n    var scaleTypeKey = axis + 'ScaleType';\n    var logMinKey = axis + 'LogMin';\n\n    return computed['default'](dataKey + '.[]', minKey, maxKey, scaleTypeKey, logMinKey, function () {\n      var data = this.get(dataKey);\n      var min = this.get(minKey);\n      var max = this.get(maxKey);\n      var scaleType = this.get(scaleTypeKey);\n      var logMin = this.get(logMinKey);\n      var domain = null;\n\n      if (scaleType === 'ordinal') {\n        domain = data;\n      } else {\n        var extent = [min, max];\n\n        if (scaleType === 'log') {\n          if (extent[0] <= 0) {\n            extent[0] = logMin;\n          }\n          if (extent[1] <= 0) {\n            extent[1] = logMin;\n          }\n        }\n\n        domain = extent;\n      }\n\n      return domain;\n    });\n  };\n\n  var scaleProperty = function scaleProperty(axis) {\n    var scaleFactoryKey = axis + 'ScaleFactory';\n    var rangeKey = axis + 'Range';\n    var domainKey = axis + 'Domain';\n    var scaleTypeKey = axis + 'ScaleType';\n    var ordinalPaddingKey = axis + 'OrdinalPadding';\n    var ordinalOuterPaddingKey = axis + 'OrdinalOuterPadding';\n\n    return computed['default'](scaleFactoryKey, rangeKey, scaleTypeKey, ordinalPaddingKey, domainKey, ordinalOuterPaddingKey, function () {\n      var scaleFactory = this.get(scaleFactoryKey);\n      var range = this.get(rangeKey);\n      var domain = this.get(domainKey);\n      var scaleType = this.get(scaleTypeKey);\n      var ordinalPadding = this.get(ordinalPaddingKey);\n      var ordinalOuterPadding = this.get(ordinalOuterPaddingKey);\n\n      var scale = scaleFactory();\n\n      if (scaleType === 'ordinal') {\n        scale = scale.domain(domain).rangeBands(range, ordinalPadding, ordinalOuterPadding);\n      } else {\n        scale = scale.domain(domain).range(range).clamp(true);\n      }\n\n      return scale;\n    });\n  };\n\n  var minProperty = function minProperty(axis, defaultTickCount) {\n    var _DataExtent_ = axis + 'DataExtent';\n    var _MinMode_ = axis + 'MinMode';\n    var _Axis_tickCount_ = axis + 'Axis.tickCount';\n    var _ScaleFactory_ = axis + 'ScaleFactory';\n    var __Min_ = '_' + axis + 'Min';\n    var _prop_ = axis + 'Min';\n    var _autoScaleEvent_ = 'didAutoUpdateMin' + axis.toUpperCase();\n\n    return computed['default'](_MinMode_, _DataExtent_, _Axis_tickCount_, _ScaleFactory_, {\n      get: function get() {\n        var _this = this;\n\n        var mode = this.get(_MinMode_);\n        var ext;\n\n        var change = function change(val) {\n          _this.set(_prop_, val);\n          _this.trigger(_autoScaleEvent_);\n        };\n\n        if (mode === 'auto') {\n          change(this.get(_DataExtent_)[0] || 0);\n        } else if (mode === 'push') {\n          ext = this.get(_DataExtent_)[0];\n          if (!isNaN(ext) && ext < this[__Min_]) {\n            change(ext);\n          }\n        } else if (mode === 'push-tick') {\n          var extent = this.get(_DataExtent_);\n          ext = extent[0];\n\n          if (!isNaN(ext) && ext < this[__Min_]) {\n            var tickCount = this.get(_Axis_tickCount_) || defaultTickCount;\n            var newDomain = this.get(_ScaleFactory_)().domain(extent).nice(tickCount).domain();\n            change(newDomain[0]);\n          }\n        }\n\n        return this[__Min_];\n      },\n      set: function set(key, value) {\n        if (value !== undefined) {\n          this[__Min_] = value;\n        }\n        return this[__Min_];\n      }\n    });\n  };\n\n  var maxProperty = function maxProperty(axis, defaultTickCount) {\n    var _DataExtent_ = axis + 'DataExtent';\n    var _Axis_tickCount_ = axis + 'Axis.tickCount';\n    var _ScaleFactory_ = axis + 'ScaleFactory';\n    var _MaxMode_ = axis + 'MaxMode';\n    var __Max_ = '_' + axis + 'Max';\n    var _prop_ = axis + 'Max';\n    var _autoScaleEvent_ = 'didAutoUpdateMax' + axis.toUpperCase();\n\n    return computed['default'](_MaxMode_, _DataExtent_, _ScaleFactory_, _Axis_tickCount_, {\n      get: function get() {\n        var _this2 = this;\n\n        var mode = this.get(_MaxMode_);\n        var ext;\n\n        var change = function change(val) {\n          _this2.set(_prop_, val);\n          _this2.trigger(_autoScaleEvent_);\n        };\n\n        if (mode === 'auto') {\n          change(this.get(_DataExtent_)[1] || 1);\n        } else if (mode === 'push') {\n          ext = this.get(_DataExtent_)[1];\n          if (!isNaN(ext) && this[__Max_] < ext) {\n            change(ext);\n          }\n        } else if (mode === 'auto-nice') {\n          ext = this.get(_DataExtent_)[1];\n\n          if (!isNaN(ext)) {\n            tickCount = this.get(_Axis_tickCount_) || defaultTickCount;\n            newDomain = this.get(_ScaleFactory_)().domain(this.get(_DataExtent_)).nice(tickCount).domain();\n            change(newDomain[1]);\n          }\n        } else if (mode === 'push-tick') {\n          var extent = this.get(_DataExtent_);\n          ext = extent[1];\n\n          if (!isNaN(ext) && this[__Max_] < ext) {\n            var tickCount = this.get(_Axis_tickCount_) || defaultTickCount;\n            var newDomain = this.get(_ScaleFactory_)().domain(extent).nice(tickCount).domain();\n            change(newDomain[1]);\n          }\n        }\n\n        return this[__Max_];\n      },\n      set: function set(key, value) {\n        if (value !== undefined) {\n          this[__Max_] = value;\n        }\n        return this[__Max_];\n      }\n    });\n  };\n\n  /**\n    A container component for building complex Cartesian graphs.\n\n    ## Minimal example\n\n         {{#nf-graph width=100 height=50}}\n           {{#nf-graph-content}}\n             {{nf-line data=lineData xprop=\"foo\" yprop=\"bar\"}}\n           {{/nf-graph-content}}\n         {{/nf-graph}}\n\n    The above will create a simple 100x50 graph, with no axes, and a single line\n    plotting the data it finds on each object in the array `lineData` at properties\n    `foo` and `bar` for x and y values respectively.\n\n    ## More advanced example\n\n         {{#nf-graph width=500 height=300}}\n           {{#nf-x-axis height=\"50\" as |tick|}}\n             <text>{{tick.value}}</text>\n           {{/nf-x-axis}}\n\n           {{#nf-y-axis width=\"120\" as |tick|}}\n             <text>{{tick.value}}</text>\n           {{/nf-y-axis}}\n\n           {{#nf-graph-content}}\n             {{nf-line data=lineData xprop=\"foo\" yprop=\"bar\"}}\n           {{/nf-graph-content}}\n         {{/nf-graph}}\n\n    The above example will create a 500x300 graph with both axes visible. The graph will not\n    render either axis unless its component is present.\n\n\n    @namespace components\n    @class nf-graph\n    @extends Ember.Component\n  */\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'div',\n\n    /**\n      The exponent to use for xScaleType \"pow\" or \"power\".\n      @property xPowerExponent\n      @type Number\n      @default 3\n    */\n    xPowerExponent: 3,\n\n    /**\n      The exponent to use for yScaleType \"pow\" or \"power\".\n      @property yPowerExponent\n      @type Number\n      @default 3\n    */\n    yPowerExponent: 3,\n\n    /**\n      The min value to use for xScaleType \"log\" if xMin <= 0\n      @property xLogMin\n      @type Number\n      @default 0.1\n    */\n    xLogMin: 0.1,\n\n    /**\n      The min value to use for yScaleType \"log\" if yMin <= 0\n      @property yLogMin\n      @type Number\n      @default 0.1\n    */\n    yLogMin: 0.1,\n\n    /**\n      Allows child compoenents to identify graph parent.\n      @property isGraph\n      @private\n    */\n    isGraph: true,\n\n    /**\n      Identifies this graph to its children as providing scales.\n      @property isScaleSource\n      @private\n    */\n    isScaleSource: true,\n\n    /**\n      @property hasRendered\n      @private\n    */\n    hasRendered: false,\n\n    /**\n      Gets or sets the whether or not multiple selectable graphics may be\n      selected simultaneously.\n      @property selectMultiple\n      @type Boolean\n      @default false\n    */\n    selectMultiple: false,\n\n    /**\n      The width of the graph in pixels.\n      @property width\n      @type Number\n      @default 300\n    */\n    width: 300,\n\n    /**\n      The height of the graph in pixels.\n      @property height\n      @type Number\n      @default 100\n    */\n    height: 100,\n\n    /**\n      The padding at the top of the graph\n      @property paddingTop\n      @type Number\n      @default 0\n    */\n    paddingTop: 0,\n\n    /**\n      The padding at the left of the graph\n      @property paddingLeft\n      @type Number\n      @default 0\n    */\n    paddingLeft: 0,\n\n    /**\n      The padding at the right of the graph\n      @property paddingRight\n      @type Number\n      @default 0\n    */\n    paddingRight: 0,\n\n    /**\n      The padding at the bottom of the graph\n      @property paddingBottom\n      @type Number\n      @default 0\n    */\n    paddingBottom: 0,\n\n    /**\n      Determines whether to display \"lanes\" in the background of\n      the graph.\n      @property showLanes\n      @type Boolean\n      @default false\n    */\n    showLanes: false,\n\n    /**\n      Determines whether to display \"frets\" in the background of\n      the graph.\n      @property showFrets\n      @type Boolean\n      @default false\n    */\n    showFrets: false,\n\n    /**\n      The type of scale to use for x values.\n       Possible Values:\n      - `'linear'` - a standard linear scale\n      - `'log'` - a logarithmic scale\n      - `'power'` - a power-based scale (exponent = 3)\n      - `'ordinal'` - an ordinal scale, used for ordinal data. required for bar graphs.\n       @property xScaleType\n      @type String\n      @default 'linear'\n    */\n    xScaleType: 'linear',\n\n    /**\n      The type of scale to use for y values.\n       Possible Values:\n      - `'linear'` - a standard linear scale\n      - `'log'` - a logarithmic scale\n      - `'power'` - a power-based scale (exponent = 3)\n      - `'ordinal'` - an ordinal scale, used for ordinal data. required for bar graphs.\n       @property yScaleType\n      @type String\n      @default 'linear'\n    */\n    yScaleType: 'linear',\n\n    /**\n      The padding between value steps when `xScaleType` is `'ordinal'`\n      @property xOrdinalPadding\n      @type Number\n      @default 0.1\n    */\n    xOrdinalPadding: 0.1,\n\n    /**\n      The padding at the ends of the domain data when `xScaleType` is `'ordinal'`\n      @property xOrdinalOuterPadding\n      @type Number\n      @default 0.1\n    */\n    xOrdinalOuterPadding: 0.1,\n\n    /**\n      The padding between value steps when `xScaleType` is `'ordinal'`\n      @property yOrdinalPadding\n      @type Number\n      @default 0.1\n    */\n    yOrdinalPadding: 0.1,\n\n    /**\n      The padding at the ends of the domain data when `yScaleType` is `'ordinal'`\n      @property yOrdinalOuterPadding\n      @type Number\n      @default 0.1\n    */\n    yOrdinalOuterPadding: 0.1,\n\n    /**\n      the `nf-y-axis` component is registered here if there is one present\n      @property yAxis\n      @readonly\n      @default null\n    */\n    yAxis: null,\n\n    /**\n      The `nf-x-axis` component is registered here if there is one present\n      @property xAxis\n      @readonly\n      @default null\n    */\n    xAxis: null,\n\n    /**\n      Backing field for `xMin`\n      @property _xMin\n      @private\n    */\n    _xMin: null,\n\n    /**\n      Backing field for `xMax`\n      @property _xMax\n      @private\n    */\n    _xMax: null,\n\n    /**\n      Backing field for `yMin`\n      @property _yMin\n      @private\n    */\n    _yMin: null,\n\n    /**\n      Backing field for `yMax`\n      @property _yMax\n      @private\n    */\n    _yMax: null,\n\n    /**\n      Gets or sets the minimum x domain value to display on the graph.\n      Behavior depends on `xMinMode`.\n      @property xMin\n    */\n    xMin: minProperty('x', 8),\n\n    /**\n      Gets or sets the maximum x domain value to display on the graph.\n      Behavior depends on `xMaxMode`.\n      @property xMax\n    */\n    xMax: maxProperty('x', 8),\n\n    /**\n      Gets or sets the minimum y domain value to display on the graph.\n      Behavior depends on `yMinMode`.\n      @property yMin\n    */\n    yMin: minProperty('y', 5),\n\n    /**\n      Gets or sets the maximum y domain value to display on the graph.\n      Behavior depends on `yMaxMode`.\n      @property yMax\n    */\n    yMax: maxProperty('y', 5),\n\n    /**\n      Sets the behavior of `xMin` for the graph.\n       ### Possible values:\n       - 'auto': (default) xMin is always equal to the minimum domain value contained in the graphed data. Cannot be set.\n      - 'fixed': xMin can be set to an exact value and will not change based on graphed data.\n      - 'push': xMin can be set to a specific value, but will update if the minimum x value contained in the graph is less than\n        what xMin is currently set to.\n      - 'push-tick': xMin can be set to a specific value, but will update to next \"nice\" tick if the minimum x value contained in\n        the graph is less than that xMin is set to.\n       @property xMinMode\n      @type String\n      @default 'auto'\n    */\n    xMinMode: 'auto',\n\n    /**\n      Sets the behavior of `xMax` for the graph.\n       ### Possible values:\n       - 'auto': (default) xMax is always equal to the maximum domain value contained in the graphed data. Cannot be set.\n      - 'fixed': xMax can be set to an exact value and will not change based on graphed data.\n      - 'push': xMax can be set to a specific value, but will update if the maximum x value contained in the graph is greater than\n        what xMax is currently set to.\n      - 'push-tick': xMax can be set to a specific value, but will update to next \"nice\" tick if the maximum x value contained in\n        the graph is greater than that xMax is set to.\n       @property xMaxMode\n      @type String\n      @default 'auto'\n    */\n    xMaxMode: 'auto',\n\n    /**\n      Sets the behavior of `yMin` for the graph.\n       ### Possible values:\n       - 'auto': (default) yMin is always equal to the minimum domain value contained in the graphed data. Cannot be set.\n      - 'fixed': yMin can be set to an exact value and will not change based on graphed data.\n      - 'push': yMin can be set to a specific value, but will update if the minimum y value contained in the graph is less than\n        what yMin is currently set to.\n      - 'push-tick': yMin can be set to a specific value, but will update to next \"nice\" tick if the minimum y value contained in\n        the graph is less than that yMin is set to.\n       @property yMinMode\n      @type String\n      @default 'auto'\n    */\n    yMinMode: 'auto',\n\n    /**\n      Sets the behavior of `yMax` for the graph.\n       ### Possible values:\n       - 'auto': (default) yMax is always equal to the maximum domain value contained in the graphed data. Cannot be set.\n      - 'fixed': yMax can be set to an exact value and will not change based on graphed data.\n      - 'push': yMax can be set to a specific value, but will update if the maximum y value contained in the graph is greater than\n        what yMax is currently set to.\n      - 'push-tick': yMax can be set to a specific value, but will update to next \"nice\" tick if the maximum y value contained in\n        the graph is greater than that yMax is set to.\n       @property yMaxMode\n      @type String\n      @default 'auto'\n    */\n    yMaxMode: 'auto',\n\n    /**\n      The data extents for all data in the registered `graphics`.\n       @property dataExtents\n      @type {Object}\n      @default {\n        xMin: Number.MAX_VALUE,\n        xMax: Number.MIN_VALUE,\n        yMin: Number.MAX_VALUE,\n        yMax: Number.MIN_VALUE\n      }\n    */\n    dataExtents: computed['default']('graphics.@each.mappedData.[]', function () {\n      var graphics = this.get('graphics');\n\n      return graphics.reduce(function (c, x) {\n        return c.concat(x.get('mappedData'));\n      }, []).reduce(function (extents, _ref) {\n        var _ref2 = _slicedToArray(_ref, 2);\n\n        var x = _ref2[0];\n        var y = _ref2[1];\n\n        extents.xMin = Math.round(extents.xMin * 100) < Math.round(x * 100) ? extents.xMin : x;\n        extents.xMax = Math.round(extents.xMax * 100) > Math.round(x * 100) ? extents.xMax : x;\n        extents.yMin = Math.round(extents.yMin * 100) < Math.round(y * 100) ? extents.yMin : y;\n        extents.yMax = Math.round(extents.yMax * 100) > Math.round(y * 100) ? extents.yMax : y;\n        return extents;\n      }, {\n        xMin: Number.MAX_VALUE,\n        xMax: Number.MIN_VALUE,\n        yMin: Number.MAX_VALUE,\n        yMax: Number.MIN_VALUE\n      });\n    }),\n\n    /**\n      The action to trigger when the graph automatically updates the xScale\n      due to an \"auto\" \"push\" or \"push-tick\" domainMode.\n       sends the graph component instance value as the argument.\n       @property autoScaleXAction\n      @type {string}\n      @default null\n    */\n    autoScaleXAction: null,\n\n    _sendAutoUpdateXAction: function _sendAutoUpdateXAction() {\n      this.sendAction('autoScaleXAction', this);\n    },\n\n    _sendAutoUpdateYAction: function _sendAutoUpdateYAction() {\n      this.sendAction('autoScaleYAction', this);\n    },\n\n    /**\n      Event handler that is fired for the `didAutoUpdateMaxX` event\n      @method didAutoUpdateMaxX\n    */\n    didAutoUpdateMaxX: function didAutoUpdateMaxX() {\n      Ember['default'].run.once(this, this._sendAutoUpdateXAction);\n    },\n\n    /**\n      Event handler that is fired for the `didAutoUpdateMinX` event\n      @method didAutoUpdateMinX\n    */\n    didAutoUpdateMinX: function didAutoUpdateMinX() {\n      Ember['default'].run.once(this, this._sendAutoUpdateXAction);\n    },\n\n    /**\n      Event handler that is fired for the `didAutoUpdateMaxY` event\n      @method didAutoUpdateMaxY\n    */\n    didAutoUpdateMaxY: function didAutoUpdateMaxY() {\n      Ember['default'].run.once(this, this._sendAutoUpdateYAction);\n    },\n\n    /**\n      Event handler that is fired for the `didAutoUpdateMinY` event\n      @method didAutoUpdateMinY\n    */\n    didAutoUpdateMinY: function didAutoUpdateMinY() {\n      Ember['default'].run.once(this, this._sendAutoUpdateYAction);\n    },\n\n    /**\n      The action to trigger when the graph automatically updates the yScale\n      due to an \"auto\" \"push\" or \"push-tick\" domainMode.\n       Sends the graph component instance as the argument.\n       @property autoScaleYAction\n      @type {string}\n      @default null\n    */\n    autoScaleYAction: null,\n\n    /**\n      Gets the highest and lowest x values of the graphed data in a two element array.\n      @property xDataExtent\n      @type Array\n      @readonly\n    */\n    xDataExtent: computed['default']('dataExtents', function () {\n      var _get = this.get('dataExtents');\n\n      var xMin = _get.xMin;\n      var xMax = _get.xMax;\n\n      return [xMin, xMax];\n    }),\n\n    /**\n      Gets the highest and lowest y values of the graphed data in a two element array.\n      @property yDataExtent\n      @type Array\n      @readonly\n    */\n    yDataExtent: computed['default']('dataExtents', function () {\n      var _get2 = this.get('dataExtents');\n\n      var yMin = _get2.yMin;\n      var yMax = _get2.yMax;\n\n      return [yMin, yMax];\n    }),\n\n    /**\n      @property xUniqueData\n      @type Array\n      @readonly\n    */\n    xUniqueData: computed['default']('graphics.@each.mappedData', function () {\n      var graphics = this.get('graphics');\n      var uniq = graphics.reduce(function (uniq, graphic) {\n        return graphic.get('mappedData').reduce(function (uniq, d) {\n          if (!uniq.some(function (x) {\n            return x === d[0];\n          })) {\n            uniq.push(d[0]);\n          }\n          return uniq;\n        }, uniq);\n      }, []);\n      return Ember['default'].A(uniq);\n    }),\n\n    /**\n      @property yUniqueData\n      @type Array\n      @readonly\n    */\n    yUniqueData: computed['default']('graphics.@each.mappedData', function () {\n      var graphics = this.get('graphics');\n      var uniq = graphics.reduce(function (uniq, graphic) {\n        return graphic.get('mappedData').reduce(function (uniq, d) {\n          if (!uniq.some(function (y) {\n            return y === d[1];\n          })) {\n            uniq.push(d[1]);\n          }\n          return uniq;\n        }, uniq);\n      }, []);\n      return Ember['default'].A(uniq);\n    }),\n\n    /**\n      Gets the DOM id for the content clipPath element.\n      @property contentClipPathId\n      @type String\n      @readonly\n      @private\n    */\n    contentClipPathId: computed['default']('elementId', function () {\n      return this.get('elementId') + '-content-mask';\n    }),\n\n    /**\n      Registry of contained graphic elements such as `nf-line` or `nf-area` components.\n      This registry is used to pool data for scaling purposes.\n      @property graphics\n      @type Array\n      @readonly\n     */\n    graphics: computed['default'](function () {\n      return Ember['default'].A();\n    }),\n\n    /**\n      An array of \"selectable\" graphics that have been selected within this graph.\n      @property selected\n      @type Array\n      @readonly\n    */\n    selected: null,\n\n    /**\n      Computed property to show yAxis. Returns `true` if a yAxis is present.\n      @property showYAxis\n      @type Boolean\n      @default false\n     */\n    showYAxis: computedBool('yAxis'),\n\n    /**\n      Computed property to show xAxis. Returns `true` if an xAxis is present.\n      @property showXAxis\n      @type Boolean\n      @default false\n     */\n    showXAxis: computedBool('xAxis'),\n\n    /**\n      Gets a function to create the xScale\n      @property xScaleFactory\n      @readonly\n     */\n    xScaleFactory: scaleFactoryProperty('x'),\n\n    /**\n      Gets a function to create the yScale\n      @property yScaleFactory\n      @readonly\n     */\n    yScaleFactory: scaleFactoryProperty('y'),\n\n    /**\n      Gets the domain of x values.\n      @property xDomain\n      @type Array\n      @readonly\n     */\n    xDomain: domainProperty('x'),\n\n    /**\n      Gets the domain of y values.\n      @property yDomain\n      @type Array\n      @readonly\n     */\n    yDomain: domainProperty('y'),\n\n    /**\n      Gets the current xScale used to draw the graph.\n      @property xScale\n      @type Function\n      @readonly\n     */\n    xScale: scaleProperty('x'),\n\n    /**\n      Gets the current yScale used to draw the graph.\n      @property yScale\n      @type Function\n      @readonly\n     */\n    yScale: scaleProperty('y'),\n\n    /**\n      Registers a graphic such as `nf-line` or `nf-area` components with the graph.\n      @method registerGraphic\n      @param graphic {Ember.Component} The component object to register\n     */\n    registerGraphic: function registerGraphic(graphic) {\n      var graphics = this.get('graphics');\n      graphics.pushObject(graphic);\n      graphic.on('hasData', this, this.updateExtents);\n    },\n\n    /**\n      Unregisters a graphic such as an `nf-line` or `nf-area` from the graph.\n      @method unregisterGraphic\n      @param graphic {Ember.Component} The component to unregister\n     */\n    unregisterGraphic: function unregisterGraphic(graphic) {\n      graphic.off('hasData', this, this.updateExtents);\n      var graphics = this.get('graphics');\n      graphics.removeObject(graphic);\n    },\n\n    updateExtents: function updateExtents() {\n      this.get('xDataExtent');\n      this.get('yDataExtent');\n    },\n\n    /**\n      The y range of the graph in pixels. The min and max pixel values\n      in an array form.\n      @property yRange\n      @type Array\n      @readonly\n     */\n    yRange: computed['default']('graphHeight', function () {\n      return [this.get('graphHeight'), 0];\n    }),\n\n    /**\n      The x range of the graph in pixels. The min and max pixel values\n      in an array form.\n      @property xRange\n      @type Array\n      @readonly\n     */\n    xRange: computed['default']('graphWidth', function () {\n      return [0, this.get('graphWidth')];\n    }),\n\n    /**\n      Returns `true` if the graph has data to render. Data is conveyed\n      to the graph by registered graphics.\n      @property hasData\n      @type Boolean\n      @default false\n      @readonly\n     */\n    hasData: computed['default'].notEmpty('graphics'),\n\n    /**\n      The x coordinate position of the graph content\n      @property graphX\n      @type Number\n      @readonly\n     */\n    graphX: computed['default']('paddingLeft', 'yAxis.width', 'yAxis.orient', function () {\n      var paddingLeft = this.get('paddingLeft');\n      var yAxisWidth = this.get('yAxis.width') || 0;\n      var yAxisOrient = this.get('yAxis.orient');\n      if (yAxisOrient === 'right') {\n        return paddingLeft;\n      }\n      return paddingLeft + yAxisWidth;\n    }),\n\n    /**\n      The y coordinate position of the graph content\n      @property graphY\n      @type Number\n      @readonly\n     */\n    graphY: computed['default']('paddingTop', 'xAxis.orient', 'xAxis.height', function () {\n      var paddingTop = this.get('paddingTop');\n      var xAxisOrient = this.get('xAxis.orient');\n      if (xAxisOrient === 'top') {\n        var xAxisHeight = this.get('xAxis.height') || 0;\n        return xAxisHeight + paddingTop;\n      }\n      return paddingTop;\n    }),\n\n    /**\n      The width, in pixels, of the graph content\n      @property graphWidth\n      @type Number\n      @readonly\n     */\n    graphWidth: computed['default']('width', 'paddingRight', 'paddingLeft', 'yAxis.width', function () {\n      var paddingRight = this.get('paddingRight') || 0;\n      var paddingLeft = this.get('paddingLeft') || 0;\n      var yAxisWidth = this.get('yAxis.width') || 0;\n      var width = this.get('width') || 0;\n      return Math.max(0, width - paddingRight - paddingLeft - yAxisWidth);\n    }),\n\n    /**\n      The height, in pixels, of the graph content\n      @property graphHeight\n      @type Number\n      @readonly\n     */\n    graphHeight: computed['default']('height', 'paddingTop', 'paddingBottom', 'xAxis.height', function () {\n      var paddingTop = this.get('paddingTop') || 0;\n      var paddingBottom = this.get('paddingBottom') || 0;\n      var xAxisHeight = this.get('xAxis.height') || 0;\n      var height = this.get('height') || 0;\n      return Math.max(0, height - paddingTop - paddingBottom - xAxisHeight);\n    }),\n\n    /**\n      An SVG transform to position the graph content\n      @property graphTransform\n      @type String\n      @readonly\n     */\n    graphTransform: computed['default']('graphX', 'graphY', function () {\n      var graphX = this.get('graphX');\n      var graphY = this.get('graphY');\n      return 'translate(' + graphX + ' ' + graphY + ')';\n    }),\n\n    /**\n      Sets `hasRendered` to `true` on `willInsertElement`.\n      @method _notifyHasRendered\n      @private\n    */\n    _notifyHasRendered: Ember['default'].on('willInsertElement', function () {\n      this.set('hasRendered', true);\n    }),\n\n    /**\n      Gets the mouse position relative to the container\n      @method mousePoint\n      @param container {SVGElement} the SVG element that contains the mouse event\n      @param e {Object} the DOM mouse event\n      @return {Array} an array of `[xMouseCoord, yMouseCoord]`\n     */\n    mousePoint: function mousePoint(container, e) {\n      var svg = container.ownerSVGElement || container;\n      if (svg.createSVGPoint) {\n        var point = svg.createSVGPoint();\n        point.x = e.clientX;\n        point.y = e.clientY;\n        point = point.matrixTransform(container.getScreenCTM().inverse());\n        return [point.x, point.y];\n      }\n      var rect = container.getBoundingClientRect();\n      return [e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop];\n    },\n\n    /**\n      A computed property returned the view's controller.\n      @property parentController\n      @type Ember.Controller\n      @readonly\n    */\n    parentController: computed['default'].alias('templateData.view.controller'),\n\n    /**\n      Selects the graphic passed. If `selectMultiple` is false, it will deselect the currently\n      selected graphic if it's different from the one passed.\n      @method selectGraphic\n      @param graphic {Ember.Component} the graph component to select within the graph.\n    */\n    selectGraphic: function selectGraphic(graphic) {\n      if (!graphic.get('selected')) {\n        graphic.set('selected', true);\n      }\n      if (this.selectMultiple) {\n        this.get('selected').pushObject(graphic);\n      } else {\n        var current = this.get('selected');\n        if (current && current !== graphic) {\n          current.set('selected', false);\n        }\n        this.set('selected', graphic);\n      }\n    },\n\n    /**\n      deselects the graphic passed.\n      @method deselectGraphic\n      @param graphic {Ember.Component} the graph child component to deselect.\n    */\n    deselectGraphic: function deselectGraphic(graphic) {\n      graphic.set('selected', false);\n      if (this.selectMultiple) {\n        this.get('selected').removeObject(graphic);\n      } else {\n        var current = this.get('selected');\n        if (current && current === graphic) {\n          this.set('selected', null);\n        }\n      }\n    },\n\n    /**\n      The initialization method. Fired on `init`.\n      @method _setup\n      @private\n    */\n    init: function init() {\n      this._super.apply(this, arguments);\n      this.set('selected', this.selectMultiple ? Ember['default'].A() : null);\n    },\n\n    /**\n      The amount of leeway, in pixels, to give before triggering a brush start.\n      @property brushThreshold\n      @type {Number}\n      @default 7\n    */\n    brushThreshold: 7,\n\n    /**\n      The name of the action to trigger when brushing starts\n      @property brushStartAction\n      @type {String}\n      @default null\n    */\n    brushStartAction: null,\n\n    /**\n      The name of the action to trigger when brushing emits a new value\n      @property brushAction\n      @type {String}\n      @default null\n    */\n    brushAction: null,\n\n    /**\n      The name of the action to trigger when brushing ends\n      @property brushEndAction\n      @type {String}\n      @default null\n    */\n    brushEndAction: null,\n\n    _setupBrushAction: Ember['default'].on('didInsertElement', function () {\n      var _this3 = this;\n\n      var content = this.$('.nf-graph-content');\n\n      var mouseMoves = Observable.fromEvent(content, 'mousemove');\n      var mouseDowns = Observable.fromEvent(content, 'mousedown');\n      var mouseUps = Observable.fromEvent(Ember['default'].$(document), 'mouseup');\n      var mouseLeaves = Observable.fromEvent(content, 'mouseleave');\n\n      this._brushDisposable = Observable.merge(mouseDowns, mouseMoves, mouseLeaves).\n      // get a streams of mouse events that start on mouse down and end on mouse up\n      window(mouseDowns, function () {\n        return mouseUps;\n      })\n      // filter out all of them if there are no brush actions registered\n      // map the mouse event streams into brush event streams\n      .map(function (x) {\n        return _this3._toBrushEventStreams(x);\n      }).\n      // flatten to a stream of action names and event objects\n      flatMap(function (x) {\n        return _this3._toComponentEventStream(x);\n      }).\n      // HACK: this is fairly cosmetic, so skip errors.\n      retry().\n      // subscribe and send the brush actions via Ember\n      subscribe(function (x) {\n        Ember['default'].run(_this3, function () {\n          return _this3._triggerComponentEvent(x);\n        });\n      });\n    }),\n\n    _toBrushEventStreams: function _toBrushEventStreams(mouseEvents) {\n      var _this4 = this;\n\n      // get the starting mouse event\n      return mouseEvents.take(1).\n      // calculate it's mouse point and info\n      map(this._getStartInfo).\n      // combine the start with the each subsequent mouse event\n      combineLatest(mouseEvents.skip(1), array_helpers.toArray).\n      // filter out everything until the brushThreshold is crossed\n      filter(function (x) {\n        return _this4._byBrushThreshold(x);\n      }).\n      // create the brush event object\n      map(function (x) {\n        return _this4._toBrushEvent(x);\n      });\n    },\n\n    _triggerComponentEvent: function _triggerComponentEvent(d) {\n      this.trigger(d[0], d[1]);\n    },\n\n    _toComponentEventStream: function _toComponentEventStream(events) {\n      return Observable.merge(events.take(1).map(function (e) {\n        return ['didBrushStart', e];\n      }), events.map(function (e) {\n        return ['didBrush', e];\n      }), events.last().map(function (e) {\n        return ['didBrushEnd', e];\n      }));\n    },\n\n    didBrush: function didBrush(e) {\n      if (this.get('brushAction')) {\n        this.sendAction('brushAction', e);\n      }\n    },\n\n    didBrushStart: function didBrushStart(e) {\n      document.body.style.setProperty('-webkit-user-select', 'none');\n      document.body.style.setProperty('-moz-user-select', 'none');\n      document.body.style.setProperty('user-select', 'none');\n      if (this.get('brushStartAction')) {\n        this.sendAction('brushStartAction', e);\n      }\n    },\n\n    didBrushEnd: function didBrushEnd(e) {\n      document.body.style.removeProperty('-webkit-user-select');\n      document.body.style.removeProperty('-moz-user-select');\n      document.body.style.removeProperty('user-select');\n      if (this.get('brushEndAction')) {\n        this.sendAction('brushEndAction', e);\n      }\n    },\n\n    _toBrushEvent: function _toBrushEvent(d) {\n      var start = d[0];\n      var currentEvent = d[1];\n      var currentPoint = svg_dom.getMousePoint(currentEvent.currentTarget, d[1]);\n\n      var startPosition = GraphPosition['default'].create({\n        originalEvent: start.originalEvent,\n        graph: this,\n        graphX: start.mousePoint.x,\n        graphY: start.mousePoint.y\n      });\n\n      var currentPosition = GraphPosition['default'].create({\n        originalEvent: currentEvent,\n        graph: this,\n        graphX: currentPoint.x,\n        graphY: currentPoint.y\n      });\n\n      var left = startPosition;\n      var right = currentPosition;\n\n      if (start.originalEvent.clientX > currentEvent.clientX) {\n        left = currentPosition;\n        right = startPosition;\n      }\n\n      return {\n        start: startPosition,\n        current: currentPosition,\n        left: left,\n        right: right\n      };\n    },\n\n    _byBrushThreshold: function _byBrushThreshold(d) {\n      var startEvent = d[0].originalEvent;\n      var currentEvent = d[1];\n      return Math.abs(currentEvent.clientX - startEvent.clientX) > this.get('brushThreshold');\n    },\n\n    _getStartInfo: function _getStartInfo(e) {\n      return {\n        originalEvent: e,\n        mousePoint: svg_dom.getMousePoint(e.currentTarget, e)\n      };\n    },\n\n    willDestroyElement: function willDestroyElement() {\n      if (this._brushDisposable) {\n        this._brushDisposable.dispose();\n      }\n    }\n  });\n\n});","define('garaje/components/nf-horizontal-line', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'line',\n\n    attributeBindings: ['lineY:y1', 'lineY:y2', 'x1', 'x2'],\n\n    classNames: ['nf-horizontal-line'],\n\n    /**\n      The y domain value at which to draw the horizontal line\n      @property y\n      @type Number\n      @default null\n    */\n    y: null,\n\n    /**\n      The computed y coordinate of the line to draw\n      @property lineY\n      @type Number\n      @private\n      @readonly\n    */\n    lineY: Ember['default'].computed('y', 'yScale', function () {\n      var y = this.get('y');\n      var yScale = this.get('yScale');\n      var py = yScale ? yScale(y) : -1;\n      return py && py > 0 ? py : 0;\n    }),\n\n    /**\n      The left x coordinate of the line\n      @property x1\n      @type Number\n      @default 0\n      @private\n    */\n    x1: 0,\n\n    /**\n      The right x coordinate of the line\n      @property x2\n      @type Number\n      @private\n      @readonly\n    */\n    x2: Ember['default'].computed.alias('graph.graphWidth')\n  });\n\n});","define('garaje/components/nf-hover-label-lower-text', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'text',\n    attributeBindings: ['cy', 'cx', 'x', 'y'],\n    classNames: ['hover-label-text'],\n\n    hasX: Ember['default'].computed.notEmpty('xData'),\n\n    lowerTextWidth: 0,\n\n    _getWidth: Ember['default'].observer('xData', function () {\n      var _this = this;\n\n      if (this.$()) {\n        (function () {\n          var width = _this.$().css('width');\n          Ember['default'].run.next(_this, function () {\n            this.set('lowerTextWidth', width);\n          });\n        })();\n      }\n    }),\n\n    x: Ember['default'].computed('xData', 'xScale', 'lowerTextWidth', function () {\n      var x = this.get('xData');\n      var xScale = this.get('xScale');\n      var hasX = this.get('hasX');\n\n      if (this.get('lowerTextWidth')) {\n        var textWidth = this.get('lowerTextWidth').split('px')[0];\n        var textOffset = (70 - textWidth) / 2 - 7;\n\n        return hasX && xScale ? xScale(x) + textOffset : -1;\n      }\n    }),\n\n    y: Ember['default'].computed('xData', function () {\n      return this.get('graph.graphHeight') + 44;\n    }),\n\n    isVisible: Ember['default'].computed.gt('yData', 0)\n  });\n\n});","define('garaje/components/nf-hover-label-lower', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'rect',\n    attributeBindings: ['rx', 'ry', 'x', 'y'],\n    classNames: ['nf-hover-label-lower'],\n\n    hasX: Ember['default'].computed.notEmpty('xData'),\n\n    rx: 3,\n    ry: 3,\n\n    x: Ember['default'].computed('xData', 'xScale', function () {\n      var x = this.get('xData');\n      var xScale = this.get('xScale');\n      var hasX = this.get('hasX');\n      return hasX && xScale ? xScale(x) - 7 : -1;\n    }),\n\n    y: Ember['default'].computed('xData', function () {\n      return this.get('graph.graphHeight') + 30;\n    }),\n\n    isVisible: Ember['default'].computed.gt('yData', 0)\n  });\n\n});","define('garaje/components/nf-hover-label-text', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'text',\n    attributeBindings: ['cy', 'cx', 'x', 'y'],\n    classNames: ['hover-label-text'],\n\n    hasX: Ember['default'].computed.notEmpty('xData'),\n    hasY: Ember['default'].computed.notEmpty('yData'),\n\n    upperTextWidth: 0,\n\n    _getWidth: (function () {\n      var _this = this;\n\n      if (this.$()) {\n        (function () {\n          var width = _this.$().css('width');\n          Ember['default'].run.next(_this, function () {\n            this.set('upperTextWidth', width);\n          });\n        })();\n      }\n    }).observes('xData'),\n\n    x: Ember['default'].computed('xData', 'xScale', function () {\n      var x = this.get('xData');\n      var xScale = this.get('xScale');\n      var hasX = this.get('hasX');\n\n      if (this.get('upperTextWidth')) {\n        var textWidth = this.get('upperTextWidth').split('px')[0];\n        var textOffset = (70 - textWidth) / 2 - 7;\n\n        return hasX && xScale ? xScale(x) + textOffset : -1;\n      }\n    }),\n\n    y: Ember['default'].computed('yData', 'yScale', function () {\n      var y = this.get('yData');\n      var yScale = this.get('yScale');\n      var hasY = this.get('hasY');\n      return hasY && yScale ? yScale(y) + 17 : -1;\n    }),\n\n    isVisible: Ember['default'].computed.and('hasX', 'hasY')\n  });\n\n});","define('garaje/components/nf-hover-label', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'rect',\n    attributeBindings: ['rx', 'ry', 'x', 'y'],\n    classNames: ['nf-y-label'],\n\n    hasX: Ember['default'].computed.notEmpty('xData'),\n    hasY: Ember['default'].computed.notEmpty('yData'),\n\n    rx: 3,\n    ry: 3,\n\n    x: Ember['default'].computed('xData', 'xScale', function () {\n      var x = this.get('xData');\n      var xScale = this.get('xScale');\n      var hasX = this.get('hasX');\n      return hasX && xScale ? xScale(x) + 18 : -1;\n    }),\n\n    y: Ember['default'].computed('yData', 'yScale', function () {\n      var y = this.get('yData');\n      var yScale = this.get('yScale');\n      var hasY = this.get('hasY');\n      return hasY && yScale ? yScale(y) + 3 : -1;\n    }),\n\n    isVisible: Ember['default'].computed.and('hasX', 'hasY')\n  });\n\n});","define('garaje/components/nf-line', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-data-graphic', 'ember-nf-graph/mixins/graph-line-utils', 'ember-nf-graph/mixins/graph-selectable-graphic', 'ember-nf-graph/mixins/graph-registered-graphic', 'ember-nf-graph/mixins/graph-graphic-with-tracking-dot', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, DataGraphic, LineUtils, SelectableGraphic, RegisteredGraphic, GraphicWithTrackingDot, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], DataGraphic['default'], SelectableGraphic['default'], LineUtils['default'], RegisteredGraphic['default'], GraphicWithTrackingDot['default'], RequireScaleSource['default'], {\n\n    tagName: 'g',\n\n    /**\n      The type of D3 interpolator to use to create the line.\n      @property interpolator\n      @type String\n      @default 'linear'\n    */\n    interpolator: 'linear',\n\n    classNameBindings: ['selected', 'selectable'],\n\n    classNames: ['nf-line'],\n\n    /**\n      The d3 line function to create the line path.\n      @method lineFn\n      @param data {Array} the array of coordinate arrays to plot as an SVG path\n      @private\n      @return {String} an SVG path data string\n    */\n    lineFn: Ember['default'].computed('xScale', 'yScale', 'interpolator', function () {\n      var xScale = this.get('xScale');\n      var yScale = this.get('yScale');\n      var interpolator = this.get('interpolator');\n      return this.createLineFn(xScale, yScale, interpolator);\n    }),\n\n    /**\n      The SVG path data string to render the line\n      @property d\n      @type String\n      @private\n      @readonly\n    */\n    d: Ember['default'].computed('renderedData.[]', 'lineFn', function () {\n      var renderedData = this.get('renderedData');\n      var lineFn = this.get('lineFn');\n      return lineFn(renderedData);\n    }),\n\n    /**\n      Event handler to toggle the `selected` property on click\n      @method _toggleSelected\n      @private\n    */\n    _toggleSelected: Ember['default'].on('click', function () {\n      if (this.get('selectable')) {\n        this.toggleProperty('selected');\n      }\n    })\n  });\n\n});","define('garaje/components/nf-plot', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/utils/nf/graph-event'], function (exports, Ember, HasGraphParent, RequireScaleSource, GraphEvent) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'g',\n\n    attributeBindings: ['transform'],\n\n    classNames: ['nf-plot'],\n\n    /**\n      The x domain value to set the plot at\n      @property x\n      @default null\n    */\n    x: null,\n\n    /**\n      The y domain value to set the plot at\n      @property x\n      @default null\n    */\n    y: null,\n\n    /**\n      True if an `x` value is present (defined, not null and non-empty)\n      @property hasX\n      @type Boolean\n      @readonly\n    */\n    hasX: Ember['default'].computed.notEmpty('x'),\n\n    /**\n      True if an `y` value is present (defined, not null and non-empty)\n      @property hasY\n      @type Boolean\n      @readonly\n    */\n    hasY: Ember['default'].computed.notEmpty('y'),\n\n    /**\n      The calculated visibility of the component\n      @property isVisible\n      @type Boolean\n      @readonly\n    */\n    isVisible: Ember['default'].computed.and('hasX', 'hasY'),\n\n    /**\n      The calculated x coordinate\n      @property rangeX\n      @type Number\n      @readonly\n    */\n    rangeX: Ember['default'].computed('x', 'xScale', function () {\n      var xScale = this.get('xScale');\n      var x = this.get('x');\n      var hasX = this.get('hasX');\n      return (hasX && xScale ? xScale(x) : 0) || 0;\n    }),\n\n    /**\n      The calculated y coordinate\n      @property rangeY\n      @type Number\n      @readonly\n    */\n    rangeY: Ember['default'].computed('y', 'yScale', function () {\n      var yScale = this.get('yScale');\n      var y = this.get('y');\n      var hasY = this.get('hasY');\n      return (hasY && yScale ? yScale(y) : 0) || 0;\n    }),\n\n    /**\n      The SVG transform of the component's `<g>` tag.\n      @property transform\n      @type String\n      @readonly\n    */\n    transform: Ember['default'].computed('rangeX', 'rangeY', function () {\n      var rangeX = this.get('rangeX');\n      var rangeY = this.get('rangeY');\n      return 'translate(' + rangeX + ' ' + rangeY + ')';\n    }),\n\n    data: null,\n\n    click: function click(e) {\n      var context = GraphEvent['default'].create({\n        x: this.get('x'),\n        y: this.get('y'),\n        data: this.get('data'),\n        source: this,\n        graph: this.get('graph'),\n        originalEvent: e\n      });\n      this.sendAction('action', context);\n    }\n  });\n\n});","define('garaje/components/nf-plots', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-data-graphic', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, DataGraphic, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], DataGraphic['default'], RequireScaleSource['default'], {\n    tagName: 'g',\n\n    classNames: ['nf-plots'],\n\n    /**\n      The parent controller to use for template binding\n      @property parentController\n      @type Ember.Controller\n      @readonly\n      @private\n    */\n    parentController: Ember['default'].computed.alias('templateData.view.controller'),\n\n    /**\n      The model for adding plots to the graph\n      @property plotData\n      @readonly\n      @private\n    */\n    plotData: Ember['default'].computed('renderedData.[]', function () {\n      var renderedData = this.get('renderedData');\n      if (renderedData && Ember['default'].isArray(renderedData)) {\n        return Ember['default'].A(renderedData.map(function (d) {\n          return {\n            x: d[0],\n            y: d[1],\n            data: d.data\n          };\n        }));\n      }\n    }),\n\n    actions: {\n      itemClicked: function itemClicked(e) {\n        this.sendAction('action', e);\n      }\n    }\n  });\n\n});","define('garaje/components/nf-range-marker', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'g',\n\n    attributeBindings: ['transform'],\n\n    classNames: ['nf-range-marker'],\n\n    /**\n      The parent `nf-range-markers` component.\n      @property container\n      @type {components.nf-range-markers}\n      @default null\n    */\n    container: null,\n\n    /**\n      The minimum domain value for the range to mark.\n      @property xMin\n      @default 0\n    */\n    xMin: 0,\n\n    /**\n      The maximum domain value for the range to mark.\n      @property xMax\n      @default 0\n    */\n    xMax: 0,\n\n    /**\n      The spacing above the range marker.\n      @property marginTop\n      @type Number\n      @default 10\n    */\n    marginTop: 10,\n\n    /**\n      The spacing below the range marker.\n      @property marginBottom\n      @type Number\n      @default 3\n    */\n    marginBottom: 3,\n\n    /**\n      The height of the range marker.\n      @property height\n      @type Number\n      @default 10\n    */\n    height: 10,\n\n    /**\n      The computed x position of the range marker.\n      @property x\n      @type Number\n      @readonly\n    */\n    x: Ember['default'].computed('xMin', 'xScale', function () {\n      var xScale = this.get('xScale');\n      var xMin = this.get('xMin');\n      return xScale(xMin);\n    }),\n\n    /**\n      The computed width of the range marker.\n      @property width\n      @type Number\n      @readonly\n    */\n    width: Ember['default'].computed('xScale', 'xMin', 'xMax', function () {\n      var xScale = this.get('xScale');\n      var xMax = this.get('xMax');\n      var xMin = this.get('xMin');\n      return xScale(xMax) - xScale(xMin);\n    }),\n\n    /**\n      The computed y position of the range marker.\n      @property y\n      @type Number\n      @readonly\n    */\n    y: Ember['default'].computed('container.orient', 'prevMarker.bottom', 'prevMarker.y', 'graph.graphHeight', 'totalHeight', function () {\n      var orient = this.get('container.orient');\n      var prevBottom = this.get('prevMarker.bottom');\n      var prevY = this.get('prevMarker.y');\n      var graphHeight = this.get('graph.graphHeight');\n      var totalHeight = this.get('totalHeight');\n\n      prevBottom = prevBottom || 0;\n\n      if (orient === 'bottom') {\n        return (prevY || graphHeight) - totalHeight;\n      }\n\n      if (orient === 'top') {\n        return prevBottom;\n      }\n    }),\n\n    /**\n      The computed total height of the range marker including its margins.\n      @property totalHeight\n      @type Number\n      @readonly\n    */\n    totalHeight: Ember['default'].computed('height', 'marginTop', 'marginBottom', function () {\n      var height = this.get('height');\n      var marginTop = this.get('marginTop');\n      var marginBottom = this.get('marginBottom');\n      return height + marginTop + marginBottom;\n    }),\n\n    /**\n      The computed bottom of the range marker, not including the bottom margin.\n      @property bottom\n      @type Number\n      @readonly\n    */\n    bottom: Ember['default'].computed('y', 'totalHeight', function () {\n      var y = this.get('y');\n      var totalHeight = this.get('totalHeight');\n      return y + totalHeight;\n    }),\n\n    /**\n      The computed SVG transform of the range marker container\n      @property transform\n      @type String\n      @readonly\n    */\n    transform: Ember['default'].computed('y', function () {\n      var y = this.get('y') || 0;\n      return 'translate(0 ' + y + ')';\n    }),\n\n    /**\n      The computed SVG transform fo the range marker label container.\n      @property labelTransform\n      @type String\n      @readonly\n    */\n    labelTransform: Ember['default'].computed('x', function () {\n      var x = this.get('x') || 0;\n      return 'translate(' + x + ' 0)';\n    }),\n\n    /**\n      Initialization function that registers the range marker with its parent \n      and populates the container property\n      @method _setup\n      @private\n    */\n    init: function init() {\n      this._super.apply(this, arguments);\n      var container = this.nearestWithProperty('isRangeMarkerContainer');\n      container.registerMarker(this);\n      this.set('container', container);\n    },\n\n    /**\n      Unregisters the range marker from its parent when the range marker is destroyed.\n      @method _unregister\n      @private\n    */\n    _unregisterMarker: Ember['default'].on('willDestroyElement', function () {\n      this.get('container').unregisterMarker(this);\n    })\n  });\n\n});","define('garaje/components/nf-range-markers', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent'], function (exports, Ember, HasGraphParent) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], {\n    tagName: 'g',\n\n    /**\n      Used by `nf-range-marker` to identify the `nf-range-markers` container\n      @property isRangeMarkerContainer\n      @type Boolean\n      @default true\n      @readonly\n    */\n    isRangeMarkerContainer: true,\n\n    /**\n      Sets the orientation of the range markers.\n       - `'bottom'` - Range markers start at the bottom and stack upward\n      - `'top'` - Range markers start at the top and stack downward\n      @property orient\n      @type String\n      @default 'bottom'\n    */\n    orient: 'bottom',\n\n    /**\n      The margin, in pixels, between the markers\n      @property markerMargin\n      @type Number\n      @default 10\n    */\n    markerMargin: 10,\n\n    /**\n      The marker components registered with this container\n      @property markers\n      @type Array\n      @readonly\n    */\n    markers: Ember['default'].computed(function () {\n      return Ember['default'].A();\n    }),\n\n    /**\n      Adds the passed marker to the `markers` list, and sets the `prevMarker` and `nextMarker`\n      properties on the marker component and it's neighbor.\n      @method registerMarker\n      @param marker {nf-range-marker} the range marker to register with this container\n    */\n    registerMarker: function registerMarker(marker) {\n      var markers = this.get('markers');\n      var prevMarker = markers[markers.length - 1];\n\n      if (prevMarker) {\n        marker.set('prevMarker', prevMarker);\n        prevMarker.set('nextMarker', marker);\n      }\n\n      markers.pushObject(marker);\n    },\n\n    /**\n      Removes the marker from the `markers` list. Also updates the `nextMarker` and `prevMarker`\n      properties of it's neighboring components.\n      @method unregisterMarker\n      @param marker {nf-range-marker} the range marker to remove from the `markers` list.\n    */\n    unregisterMarker: function unregisterMarker(marker) {\n      if (marker) {\n        var next = marker.nextMarker;\n        var prev = marker.prevMarker;\n        if (prev) {\n          prev.set('nextMarker', next);\n        }\n        if (next) {\n          next.set('prevMarker', prev);\n        }\n        this.get('markers').removeObject(marker);\n      }\n    }\n  });\n\n});","define('garaje/components/nf-rect-box', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'rect',\n    classNames: ['nf-rect-box'],\n    attributeBindings: ['cy', 'cx', 'x', 'y'],\n\n    width: 60,\n    height: 60,\n\n    rx: 10,\n    ry: 10,\n    y1: 0,\n    y2: Ember['default'].computed.alias('graph.graphHeight'),\n    x: null,\n\n    cx: Ember['default'].computed('x', 'xScale', 'hasX', function () {\n      var x = this.get('x');\n      var xScale = this.get('xScale');\n      var hasX = this.get('hasX');\n      return hasX && xScale ? xScale(x) : -1;\n    }),\n\n    cy: Ember['default'].computed('y', 'yScale', 'hasY', function () {\n      var y = this.get('y');\n      var yScale = this.get('yScale');\n      var hasY = this.get('hasY');\n      return hasY && yScale ? yScale(y) : -1;\n    }),\n\n    lineX: Ember['default'].computed('xScale', 'x', function () {\n      var xScale = this.get('xScale');\n      var x = this.get('x');\n      var px = xScale ? xScale(x) : -1;\n      return px && px > 0 ? px : 0;\n    })\n  });\n\n});","define('garaje/components/nf-right-tick', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'g',\n\n    classNames: ['nf-right-tick'],\n\n    /**\n      The transition duration in milliseconds\n      @property duration\n      @type Number\n      @default 400\n    */\n    duration: 400,\n\n    /**\n      The domain value at which to place the tick\n      @property value\n      @type Number\n      @default null\n    */\n    value: null,\n\n    /**\n      Sets the visibility of the component. Returns false if `y` is not \n      a numeric data type.\n      @property isVisible\n      @private\n      @readonly\n    */\n    isVisible: Ember['default'].computed('y', function () {\n      return !isNaN(this.get('y'));\n    }),\n\n    /**\n      The calculated y coordinate of the tick\n      @property y\n      @type Number\n      @readonly\n    */\n    y: Ember['default'].computed('value', 'yScale', 'graph.paddingTop', function () {\n      var value = this.get('value');\n      var yScale = this.get('yScale');\n      var paddingTop = this.get('graph.paddingTop');\n      var vy = 0;\n      if (yScale) {\n        vy = yScale(value) || 0;\n      }\n      return vy + paddingTop;\n    }),\n\n    /**\n      The SVG transform used to render the tick\n      @property transform\n      @type String\n      @private\n      @readonly\n    */\n    transform: Ember['default'].computed('y', 'graph.width', function () {\n      var y = this.get('y');\n      var graphWidth = this.get('graph.width');\n      var x0 = graphWidth - 6;\n      var y0 = y - 3;\n      return 'translate(' + x0 + ' ' + y0 + ')';\n    }),\n\n    /**\n      performs the D3 transition to move the tick to the proper position.\n      @method _transitionalUpdate\n      @private\n    */\n    _transitionalUpdate: function _transitionalUpdate() {\n      var transform = this.get('transform');\n      var path = this.get('path');\n      var duration = this.get('duration');\n      path.transition().duration(duration).attr('transform', transform);\n    },\n\n    /**\n      Schedules the transition when `value` changes on on init.\n      @method _triggerTransition\n      @private\n    */\n    _triggerTransition: Ember['default'].on('init', Ember['default'].observer('value', function () {\n      Ember['default'].run.scheduleOnce('afterRender', this, this._transitionalUpdate);\n    })),\n\n    /**\n      Updates the tick position without a transition.\n      @method _nonTransitionalUpdate\n      @private\n    */\n    _nonTransitionalUpdate: function _nonTransitionalUpdate() {\n      var transform = this.get('transform');\n      var path = this.get('path');\n      path.attr('transform', transform);\n    },\n\n    /**\n      Schedules the update of non-transitional positions\n      @method _triggerNonTransitionalUpdate\n      @private\n    */\n    _triggerNonTransitionalUpdate: Ember['default'].observer('graph.width', function () {\n      Ember['default'].run.scheduleOnce('afterRender', this, this._nonTransitionalUpdate);\n    }),\n\n    /**\n      Gets the elements required to do the d3 transitions\n      @method _getElements\n      @private\n    */\n    _getElements: Ember['default'].on('didInsertElement', function () {\n      var g = d3.select(this.$()[0]);\n      var path = g.selectAll('path').data([0]);\n      this.set('path', path);\n    })\n  });\n\n});","define('garaje/components/nf-selection-box', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/utils/nf/scale-utils'], function (exports, Ember, HasGraphParent, RequireScaleSource, scale_utils) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'g',\n\n    /**\n      The duration of the transition in ms\n      @property duration\n      @type Number\n      @default 400\n    */\n    duration: 400,\n\n    /**\n      The minimum x domain value to encompass.\n      @property xMin\n      @default null\n    */\n    xMin: null,\n\n    /**\n      The maximum x domain value to encompoass.\n      @property xMax\n      @default null\n    */\n    xMax: null,\n\n    /**\n      The minimum y domain value to encompass.\n      @property yMin\n      @default null\n    */\n    yMin: null,\n\n    /** \n      The maximum y domain value to encompass\n      @property yMax\n      @default null\n    */\n    yMax: null,\n\n    classNames: ['nf-selection-box'],\n\n    /**\n      The x pixel position of xMin\n      @property x0\n      @type Number\n    */\n    x0: Ember['default'].computed('xMin', 'xScale', function () {\n      return scale_utils.normalizeScale(this.get('xScale'), this.get('xMin'));\n    }),\n\n    /**\n      The x pixel position of xMax\n      @property x1\n      @type Number\n    */\n    x1: Ember['default'].computed('xMax', 'xScale', function () {\n      return scale_utils.normalizeScale(this.get('xScale'), this.get('xMax'));\n    }),\n\n    /**\n      The y pixel position of yMin\n      @property y0\n      @type Number\n    */\n    y0: Ember['default'].computed('yMin', 'yScale', function () {\n      return scale_utils.normalizeScale(this.get('yScale'), this.get('yMin'));\n    }),\n\n    /**\n      The y pixel position of yMax\n      @property y1\n      @type Number\n    */\n    y1: Ember['default'].computed('yMax', 'yScale', function () {\n      return scale_utils.normalizeScale(this.get('yScale'), this.get('yMax'));\n    }),\n\n    /**\n      The SVG path string for the box's rectangle.\n      @property rectPath\n      @type String\n    */\n    rectPath: Ember['default'].computed('x0', 'x1', 'y0', 'y1', function () {\n      var x0 = this.get('x0');\n      var x1 = this.get('x1');\n      var y0 = this.get('y0');\n      var y1 = this.get('y1');\n      return 'M' + x0 + ',' + y0 + ' L' + x0 + ',' + y1 + ' L' + x1 + ',' + y1 + ' L' + x1 + ',' + y0 + ' L' + x0 + ',' + y0;\n    }),\n\n    /**\n      Updates the position of the box with a transition\n      @method doUpdatePosition\n    */\n    doUpdatePosition: function doUpdatePosition() {\n      var boxRect = this.get('boxRectElement');\n      var rectPath = this.get('rectPath');\n      var duration = this.get('duration');\n\n      boxRect.transition().duration(duration).attr('d', rectPath);\n    },\n\n    doUpdatePositionStatic: function doUpdatePositionStatic() {\n      var boxRect = this.get('boxRectElement');\n      var rectPath = this.get('rectPath');\n\n      boxRect.attr('d', rectPath);\n    },\n\n    /**\n      Schedules an update to the position of the box after render.\n      @method updatePosition\n      @private\n    */\n    updatePosition: Ember['default'].observer('xMin', 'xMax', 'yMin', 'yMax', function () {\n      Ember['default'].run.once(this, this.doUpdatePosition);\n    }),\n\n    staticPositionChange: Ember['default'].on('didInsertElement', Ember['default'].observer('xScale', 'yScale', function () {\n      Ember['default'].run.once(this, this.doUpdatePositionStatic);\n    })),\n\n    /**\n      Sets up the required d3 elements after component\n      is inserted into the DOM\n      @method didInsertElement\n    */\n    didInsertElement: function didInsertElement() {\n      var element = this.get('element');\n      var g = d3.select(element);\n      var boxRect = g.append('path').attr('class', 'nf-selection-box-rect').attr('d', this.get('rectPath'));\n\n      this.set('boxRectElement', boxRect);\n    }\n  });\n\n});","define('garaje/components/nf-svg-image', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/utils/nf/scale-utils', 'ember-nf-graph/mixins/graph-selectable-graphic', 'ember-new-computed'], function (exports, Ember, HasGraphParent, RequiresScaleSource, scale_utils, SelectableGraphic, computed) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequiresScaleSource['default'], SelectableGraphic['default'], {\n    tagName: 'image',\n\n    classNameBindings: [':nf-svg-image', 'selectable', 'selected'],\n\n    //HACK: for now xlink:href needs to be bound elsewhere.\n    attributeBindings: ['svgX:x', 'svgY:y', 'svgWidth:width', 'svgHeight:height'],\n\n    click: function click() {\n      if (this.get('selectable')) {\n        this.toggleProperty('selected');\n      }\n    },\n\n    /**\n      The domain x value to place the image at.\n      @property x\n      @default null\n    */\n    x: null,\n\n    /**\n      The domain y value to place the image at.\n      @property y\n      @default null\n    */\n    y: null,\n\n    _width: 0,\n\n    /**\n      The width as a domain value. Does not handle ordinal\n      scales. To set a pixel value, set `svgWidth` directly.\n      @property width\n      @type Number\n      @default 0\n    */\n    width: computed['default']({\n      get: function get() {\n        return this._width;\n      },\n      set: function set(key, value) {\n        return this._width = Math.max(0, +value) || 0;\n      }\n    }),\n\n    _height: 0,\n\n    /**\n      The height as a domain value. Does not \n      handle ordinal scales. To set a pixel value, just\n      set `svgHeight` directly.\n      @property height\n      @default null\n    */\n    height: computed['default']({\n      get: function get() {\n        return this._height;\n      },\n      set: function set(key, value) {\n        this._height = Math.max(0, +value) || 0;\n      }\n    }),\n\n    /**\n      The image source url\n      @property src\n      @type String\n    */\n    src: computed['default']({\n      // HACK: because attributeBindings doesn't currently work with namespaced attributes.\n      get: function get() {\n        return this.$().attr('xlink:href');\n      },\n      set: function set(key, value) {\n        this.$().attr('xlink:href', value);\n        return value;\n      }\n    }),\n\n    x0: computed['default']('x', 'xScale', function () {\n      return scale_utils.normalizeScale(this.get('xScale'), this.get('x'));\n    }),\n\n    y0: computed['default']('y', 'yScale', function () {\n      return scale_utils.normalizeScale(this.get('yScale'), this.get('y'));\n    }),\n\n    x1: computed['default']('xScale', 'width', 'x', function () {\n      var scale = this.get('xScale');\n      if (scale.rangeBands) {\n        throw new Error('nf-image does not support ordinal scales');\n      }\n      return scale_utils.normalizeScale(scale, this.get('width') + this.get('x'));\n    }),\n\n    y1: computed['default']('yScale', 'height', 'y', function () {\n      var scale = this.get('yScale');\n      if (scale.rangeBands) {\n        throw new Error('nf-image does not support ordinal scales');\n      }\n      return scale_utils.normalizeScale(scale, this.get('height') + this.get('y'));\n    }),\n\n    /**\n      The pixel value at which to plot the image.\n      @property svgX\n      @type Number\n    */\n    svgX: computed['default']('x0', 'x1', function () {\n      return Math.min(this.get('x0'), this.get('x1'));\n    }),\n\n    /**\n      The pixel value at which to plot the image.\n      @property svgY\n      @type Number\n    */\n    svgY: computed['default']('y0', 'y1', function () {\n      return Math.min(this.get('y0'), this.get('y1'));\n    }),\n\n    /**\n      The width, in pixels, of the image.\n      @property svgWidth\n      @type Number\n    */\n    svgWidth: computed['default']('x0', 'x1', function () {\n      return Math.abs(this.get('x0') - this.get('x1'));\n    }),\n\n    /**\n      The height, in pixels of the image.\n      @property svgHeight\n      @type Number\n    */\n    svgHeight: computed['default']('y0', 'y1', function () {\n      return Math.abs(this.get('y0') - this.get('y1'));\n    })\n  });\n\n});","define('garaje/components/nf-svg-line', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/utils/nf/scale-utils', 'ember-nf-graph/mixins/graph-selectable-graphic'], function (exports, Ember, HasGraphParent, RequiresScaleSource, scale_utils, SelectableGraphic) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequiresScaleSource['default'], SelectableGraphic['default'], {\n    tagName: 'line',\n\n    classNameBindings: [':nf-svg-line', 'selectable', 'selected'],\n\n    attributeBindings: ['svgX1:x1', 'svgX2:x2', 'svgY1:y1', 'svgY2:y2'],\n\n    click: function click() {\n      if (this.get('selectable')) {\n        this.toggleProperty('selected');\n      }\n    },\n\n    /**\n      The domain value to plot the SVGLineElement's x1 at.\n      @property x1\n      @default null\n    */\n    x1: null,\n\n    /**\n      The domain value to plot the SVGLineElement's x2 at.\n      @property x2\n      @default null\n    */\n    x2: null,\n\n    /**\n      The domain value to plot the SVGLineElement's y1 at.\n      @property y1\n      @default null\n    */\n    y1: null,\n\n    /**\n      The domain value to plot the SVGLineElement's y2 at.\n      @property y2\n      @default null\n    */\n    y2: null,\n\n    /**\n      The pixel value to plot the SVGLineElement's x1 at.\n      @property svgX1\n      @type Number\n    */\n    svgX1: Ember['default'].computed('x1', 'xScale', function () {\n      return scale_utils.normalizeScale(this.get('xScale'), this.get('x1'));\n    }),\n\n    /**\n      The pixel value to plot the SVGLineElement's x2 at.\n      @property svgX2\n      @type Number\n    */\n    svgX2: Ember['default'].computed('x2', 'xScale', function () {\n      return scale_utils.normalizeScale(this.get('xScale'), this.get('x2'));\n    }),\n\n    /**\n      The pixel value to plot the SVGLineElement's y1 at.\n      @property svgY1\n      @type Number\n    */\n    svgY1: Ember['default'].computed('y1', 'yScale', function () {\n      return scale_utils.normalizeScale(this.get('yScale'), this.get('y1'));\n    }),\n\n    /**\n      The pixel value to plot the SVGLineElement's y2 at.\n      @property svgY2\n      @type Number\n    */\n    svgY2: Ember['default'].computed('y2', 'yScale', function () {\n      return scale_utils.normalizeScale(this.get('yScale'), this.get('y2'));\n    })\n  });\n\n});","define('garaje/components/nf-svg-path', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/utils/nf/scale-utils', 'ember-nf-graph/mixins/graph-selectable-graphic'], function (exports, Ember, HasGraphParent, RequiresScaleSource, scale_utils, SelectableGraphic) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequiresScaleSource['default'], SelectableGraphic['default'], {\n    type: 'path',\n\n    classNameBindings: [':nf-svg-path', 'selectable', 'selected'],\n\n    attributeBindings: ['d'],\n\n    /**\n      The array of points to use to plot the path. This is an array of arrays, in the following format:\n             // specify path pen commands\n            [\n              [50, 50, 'L'],\n              [100, 100, 'L']\n            ]\n             // or they will default to 'L'\n            [\n              [50, 50],\n              [100, 100]\n            ]\n     @property points\n    @type Array\n    */\n    points: null,\n\n    /**\n      The data points mapped to scale\n      @property svgPoints\n      @type Array\n    */\n    svgPoints: Ember['default'].computed('points.[]', 'xScale', 'yScale', function () {\n      var points = this.get('points');\n      var xScale = this.get('xScale');\n      var yScale = this.get('yScale');\n      if (Ember['default'].isArray(points) && points.length > 0) {\n        return points.map(function (v) {\n          var dx = scale_utils.normalizeScale(xScale, v[0]);\n          var dy = scale_utils.normalizeScale(yScale, v[1]);\n          var c = v.length > 2 ? v[2] : 'L';\n          return [dx, dy, c];\n        });\n      }\n    }),\n\n    click: function click() {\n      if (this.get('selectable')) {\n        this.toggleProperty('selected');\n      }\n    },\n\n    /**\n      The raw svg path d attribute output\n      @property d\n      @type String\n    */\n    d: Ember['default'].computed('svgPoints', function () {\n      var svgPoints = this.get('svgPoints');\n      if (Ember['default'].isArray(svgPoints) && svgPoints.length > 0) {\n        return svgPoints.reduce(function (d, pt, i) {\n          if (i === 0) {\n            d += 'M' + pt[0] + ',' + pt[1];\n          }\n          d += ' ' + pt[2] + pt[0] + ',' + pt[1];\n          return d;\n        }, '');\n      } else {\n        return 'M0,0';\n      }\n    })\n  });\n\n});","define('garaje/components/nf-svg-rect', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/utils/nf/scale-utils', 'ember-nf-graph/mixins/graph-selectable-graphic', 'ember-new-computed'], function (exports, Ember, HasGraphParent, RequiresScaleSource, scale_utils, SelectableGraphic, computed) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequiresScaleSource['default'], SelectableGraphic['default'], {\n    tagName: 'path',\n\n    attributeBindings: ['d'],\n\n    classNameBindings: [':nf-svg-rect', 'selectable', 'selected'],\n\n    /**\n      The domain x value to place the rect at.\n      @property x\n      @default null\n    */\n    x: null,\n\n    /**\n      The domain y value to place the rect at.\n      @property y\n      @default null\n    */\n    y: null,\n\n    _width: 0,\n\n    /**\n      The width as a domain value. If xScale is ordinal, \n      then this value is the indice offset to which to draw the \n      rectangle. In other words, if it's `2`, then draw the rectangle\n      to two ordinals past whatever `x` is set to.\n      @property width\n      @type Number\n      @default 0\n    */\n    width: computed['default']({\n      get: function get() {\n        return this._width;\n      },\n      set: function set(key, value) {\n        return this._width = +value;\n      }\n    }),\n\n    _height: 0,\n\n    /**\n      The height as a domain value. If the yScale is ordinal,\n      this value is the indice offset to which to draw the rectangle.\n      For example, if the height is `3` then draw the rectangle\n      to two ordinals passed whatever `y` is set to.\n      @property height\n      @type Number\n      @default 0\n    */\n    height: computed['default']({\n      get: function get() {\n        return this._height;\n      },\n      set: function set(key, value) {\n        return this._height = +value;\n      }\n    }),\n\n    /**\n      The x value of the bottom right corner of the rectangle.\n      @property x1\n      @type Number\n    */\n    x1: computed['default']('width', 'x', 'xScale', function () {\n      var xScale = this.get('xScale');\n      var w = this.get('width');\n      var x = this.get('x');\n      if (xScale.rangeBands) {\n        var domain = xScale.domain();\n        var fromIndex = domain.indexOf(x);\n        var toIndex = fromIndex + w;\n        return scale_utils.normalizeScale(xScale, domain[toIndex]);\n      } else {\n        x = +x || 0;\n        return scale_utils.normalizeScale(xScale, w + x);\n      }\n    }),\n\n    /**\n      The y value of the bottom right corner of the rectangle\n      @property y1\n      @type Number\n    */\n    y1: computed['default']('height', 'y', 'yScale', function () {\n      var yScale = this.get('yScale');\n      var h = this.get('height');\n      var y = this.get('y');\n      if (yScale.rangeBands) {\n        var domain = yScale.domain();\n        var fromIndex = domain.indexOf(y);\n        var toIndex = fromIndex + h;\n        return scale_utils.normalizeScale(yScale, domain[toIndex]);\n      } else {\n        y = +y || 0;\n        return scale_utils.normalizeScale(yScale, h + y);\n      }\n    }),\n\n    /**\n      The x value of the top right corner of the rectangle\n      @property x0\n      @type Number\n    */\n    x0: computed['default']('x', 'xScale', function () {\n      return scale_utils.normalizeScale(this.get('xScale'), this.get('x'));\n    }),\n\n    /**\n      The y value of the top right corner of the rectangle.\n      @property y0\n      @type Number\n    */\n    y0: computed['default']('y', 'yScale', function () {\n      return scale_utils.normalizeScale(this.get('yScale'), this.get('y'));\n    }),\n\n    /**\n      The SVG path data for the rectangle\n      @property d\n      @type String\n    */\n    d: computed['default']('x0', 'y0', 'x1', 'y1', function () {\n      var x0 = this.get('x0');\n      var y0 = this.get('y0');\n      var x1 = this.get('x1');\n      var y1 = this.get('y1');\n      return 'M' + x0 + ',' + y0 + ' L' + x0 + ',' + y1 + ' L' + x1 + ',' + y1 + ' L' + x1 + ',' + y0 + ' L' + x0 + ',' + y0;\n    }),\n\n    /**\n      Click event handler. Toggles selected if selectable.\n      @method click\n    */\n    click: function click() {\n      if (this.get('selectable')) {\n        this.toggleProperty('selected');\n      }\n    }\n  });\n\n});","define('garaje/components/nf-tick-label', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'g',\n\n    attributeBindings: ['transform'],\n\n    transform: Ember['default'].computed('x', 'y', function () {\n      var x = this.get('x');\n      var y = this.get('y');\n      return 'translate(' + x + ' ' + y + ')';\n    }),\n\n    className: 'nf-tick-label'\n  });\n\n});","define('garaje/components/nf-tracker', ['exports', 'ember', 'ember-nf-graph/mixins/graph-data-graphic', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-graphic-with-tracking-dot', 'ember-new-computed'], function (exports, Ember, DataGraphic, RequiresScaleSource, HasGraphParent, GraphicWithTrackingDot, computed) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], DataGraphic['default'], RequiresScaleSource['default'], GraphicWithTrackingDot['default'], {\n    tagName: 'g',\n\n    classNameBindings: [':nf-tracker'],\n\n    attributeBindings: ['transform'],\n\n    transform: computed['default']('trackedData.x', 'trackedData.y', 'xScale', 'yScale', {\n      get: function get() {\n        var xScale = this.get('xScale');\n        var yScale = this.get('yScale');\n        var x = xScale && xScale(this.get('trackedData.x') || 0);\n        var y = yScale && yScale(this.get('trackedData.y') || 0);\n        return 'translate(' + x + ',' + y + ')';\n      }\n    })\n  });\n\n});","define('garaje/components/nf-vertical-line-partial', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'line',\n    classNames: ['nf-vertical-line-partial'],\n    attributeBindings: ['lineX:x1', 'lineX:x2', 'y1', 'y2'],\n\n    y1: Ember['default'].computed('yData', 'yScale', function () {\n      var y = this.get('yData');\n      var yScale = this.get('yScale');\n\n      if (typeof y === 'undefined') {\n        y = 0;\n      }\n      return yScale(y);\n    }),\n\n    y2: Ember['default'].computed.alias('graph.graphHeight'),\n\n    x: null,\n\n    lineX: Ember['default'].computed('xScale', 'x', function () {\n      var xScale = this.get('xScale');\n      var x = this.get('x');\n      var px = xScale ? xScale(x) : -1;\n      return px && px > 0 ? px : 0;\n    })\n  });\n\n});","define('garaje/components/nf-vertical-line', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source'], function (exports, Ember, HasGraphParent, RequireScaleSource) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'line',\n\n    classNames: ['nf-vertical-line'],\n\n    attributeBindings: ['lineX:x1', 'lineX:x2', 'y1', 'y2'],\n\n    /**\n      The top y coordinate of the line\n      @property y1\n      @type Number\n      @default 0\n      @private\n    */\n    y1: 0,\n\n    /**\n      The bottom y coordinate of the line\n      @property y2\n      @type Number\n      @private\n      @readonly\n    */\n    y2: Ember['default'].computed.alias('graph.graphHeight'),\n\n    /**\n      The x domain value at which to draw the vertical line on the graph\n      @property x\n      @type Number\n      @default null\n    */\n    x: null,\n\n    /**\n      The calculated x coordinate of the vertical line\n      @property lineX\n      @type Number\n      @private\n      @readonly\n    */\n    lineX: Ember['default'].computed('xScale', 'x', function () {\n      var xScale = this.get('xScale');\n      var x = this.get('x');\n      var px = xScale ? xScale(x) : -1;\n      return px && px > 0 ? px : 0;\n    })\n  });\n\n});","define('garaje/components/nf-x-axis', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'garaje/templates/components/nf-x-axis'], function (exports, Ember, HasGraphParent, RequireScaleSource, layout) {\n\n  'use strict';\n\n  // import NFXAxis from 'garaje/components/nf-x-axis';\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'g',\n\n    layout: layout['default'],\n    template: null,\n\n    useTemplate: Ember['default'].computed('hasBlock', 'template.blockParams', 'hasBlockParams', function () {\n      var preGlimmerCheck = this.get('template.blockParams');\n      var postGlimmerCheck = this.get('hasBlock') && this.get('hasBlockParams');\n      return Boolean(postGlimmerCheck || preGlimmerCheck);\n    }),\n\n    attributeBindings: ['transform'],\n    classNameBindings: ['orientClass'],\n    classNames: ['nf-x-axis'],\n\n    /**\n      The height of the x axis in pixels.\n      @property height\n      @type Number\n      @default 20\n    */\n    height: 20,\n\n    /**\n      The number of ticks to display\n      @property tickCount\n      @type Number\n      @default 12\n    */\n    tickCount: 12,\n\n    /**\n      The length of the tick line (the small vertical line indicating the tick)\n      @property tickLength\n      @type Number\n      @default 0\n    */\n    tickLength: 0,\n\n    /**\n      The spacing between the end of the tick line and the origin of the templated\n      tick content\n      @property tickPadding\n      @type Number\n      @default 5\n    */\n    tickPadding: 5,\n\n    /**\n      The orientation of the x axis. Value can be `'top'` or `'bottom'`.\n      @property orient\n      @type String\n      @default 'bottom'\n    */\n    orient: 'bottom',\n\n    _tickFilter: null,\n\n    /**\n      An optional filtering function to allow more control over what tick marks are displayed.\n      The function should have exactly the same signature as the function you'd use for an\n      `Array.prototype.filter()`.\n       @property tickFilter\n      @type Function\n      @default null\n      @example\n             {{#nf-x-axis tickFilter=myFilter as |tick|}}\n              <text>{{tick.value}}</text>\n            {{/nf-x-axis}}\n       And on your controller:\n             myFilter: function(tick, index, ticks) {\n              return tick.value < 1000;\n            },\n       The above example will filter down the set of ticks to only those that are less than 1000.\n    */\n    tickFilter: Ember['default'].computed.alias('_tickFilter'),\n\n    /**\n      The class applied due to orientation (e.g. `'orient-top'`)\n      @property orientClass\n      @type String\n      @readonly\n    */\n    orientClass: Ember['default'].computed('orient', function () {\n      return 'orient-' + this.get('orient');\n    }),\n\n    /**\n      The SVG Transform applied to this component's container.\n      @property transform\n      @type String\n      @readonly\n    */\n    transform: Ember['default'].computed('x', 'y', function () {\n      var x = this.get('x') || 0;\n      var y = this.get('y') || 0;\n      return 'translate(' + x + ' ' + y + ')';\n    }),\n\n    /**\n      The y position of this component's container.\n      @property y\n      @type Number\n      @readonly\n    */\n    y: Ember['default'].computed('orient', 'graph.paddingTop', 'graph.paddingBottom', 'graph.height', 'height', function () {\n      var orient = this.get('orient');\n      var graphHeight = this.get('graph.height');\n      var height = this.get('height');\n      var paddingBottom = this.get('graph.paddingBottom');\n      var paddingTop = this.get('graph.paddingTop');\n      var y;\n\n      if (orient === 'bottom') {\n        y = graphHeight - paddingBottom - height;\n      } else {\n        y = paddingTop;\n      }\n\n      return y || 0;\n    }),\n\n    /**\n      This x position of this component's container\n      @property x\n      @type Number\n      @readonly\n    */\n    x: Ember['default'].computed('graph.graphX', function () {\n      return this.get('graph.graphX') || 0;\n    }),\n\n    init: function init() {\n      this._super.apply(this, arguments);\n      this.set('graph.xAxis', this);\n    },\n\n    /**\n      The width of the component\n      @property width\n      @type Number\n      @readonly\n    */\n    width: Ember['default'].computed.alias('graph.graphWidth'),\n\n    /**\n      A method to call to override the default behavior of how ticks are created.\n       The function signature should match:\n             // - scale: d3.Scale\n            // - tickCount: number of ticks\n            // - uniqueData: unique data points for the axis\n            // - scaleType: string of \"linear\" or \"ordinal\"\n            // returns: an array of tick values.\n            function(scale, tickCount, uniqueData, scaleType) {\n              return [100,200,300];\n            }\n       @property tickFactory\n      @type {Function}\n      @default null\n    */\n    tickFactory: null,\n\n    tickData: Ember['default'].computed('xScale', 'graph.xScaleType', 'uniqueXData', 'tickCount', 'tickFactory', function () {\n      var tickFactory = this.get('tickFactory');\n      var scale = this.get('xScale');\n      var uniqueData = this.get('uniqueXData');\n      var tickCount = this.get('tickCount');\n      var scaleType = this.get('graph.xScaleType');\n\n      if (tickFactory) {\n        return tickFactory(scale, tickCount, uniqueData, scaleType);\n      } else if (scaleType === 'ordinal') {\n        return uniqueData;\n      } else {\n        return scale.ticks(tickCount);\n      }\n    }),\n\n    /**\n      A unique set of all x data on the graph\n      @property uniqueXData\n      @type Array\n      @readonly\n    */\n    uniqueXData: Ember['default'].computed.uniq('graph.xDomain'),\n\n    /**\n      The models for the ticks to display on the axis.\n      @property ticks\n      @type Array\n      @readonly\n    */\n    ticks: Ember['default'].computed('xScale', 'tickPadding', 'tickLength', 'height', 'orient', 'tickFilter', 'tickData', 'graph.xScaleType', function () {\n      var xScale = this.get('xScale');\n      var xScaleType = this.get('graph.xScaleType');\n      var tickPadding = this.get('tickPadding');\n      var tickLength = this.get('tickLength');\n      var height = this.get('height');\n      var orient = this.get('orient');\n      var tickFilter = this.get('tickFilter');\n      var ticks = this.get('tickData');\n      var y1 = orient === 'top' ? height : 0;\n      var y2 = y1 + tickLength;\n      var labely = orient === 'top' ? y1 - tickPadding : y1 + tickPadding;\n      var halfBandWidth = xScaleType === 'ordinal' ? xScale.rangeBand() / 4 : 0;\n      var result = ticks.map(function (tick) {\n        return {\n          value: tick,\n          x: xScale(tick) + halfBandWidth,\n          y1: y1,\n          y2: y2,\n          labely: labely\n        };\n      });\n\n      if (tickFilter) {\n        result = result.filter(tickFilter);\n      }\n\n      return Ember['default'].A(result);\n    }),\n\n    /**\n      The y position, in pixels, of the axis line\n      @property axisLineY\n      @type Number\n      @readonly\n    */\n    axisLineY: Ember['default'].computed('orient', 'height', function () {\n      var orient = this.get('orient');\n      var height = this.get('height');\n      return orient === 'top' ? height : 0;\n    })\n\n  });\n\n});","define('garaje/components/nf-y-axis', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-new-computed', 'garaje/templates/components/nf-y-axis'], function (exports, Ember, HasGraphParent, RequireScaleSource, computed, layout) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'g',\n\n    layout: layout['default'],\n    template: null,\n\n    useTemplate: computed['default'](function () {\n      var preGlimmerCheck = this.get('template.blockParams');\n      var postGlimmerCheck = this.get('hasBlock') && this.get('hasBlockParams');\n      return Boolean(postGlimmerCheck || preGlimmerCheck);\n    }),\n\n    /**\n      The number of ticks to display\n      @property tickCount\n      @type Number\n      @default 5\n    */\n    tickCount: 5,\n\n    /**\n      The length of the tick's accompanying line.\n      @property tickLength\n      @type Number\n      @default 5\n    */\n    tickLength: 5,\n\n    /**\n      The distance between the tick line and the origin tick's templated output\n      @property tickPadding\n      @type Number\n      @default 3\n    */\n    tickPadding: 3,\n\n    /**\n      The total width of the y axis\n      @property width\n      @type Number\n      @default 40\n    */\n    width: 40,\n\n    /**\n      The orientation of the y axis. Possible values are `'left'` and `'right'`\n      @property orient\n      @type String\n      @default 'left'\n    */\n    orient: 'left',\n\n    attributeBindings: ['transform'],\n\n    classNameBindings: [':nf-y-axis', 'isOrientRight:orient-right:orient-left'],\n\n    _tickFilter: null,\n\n    /**\n      An optional filtering function to allow more control over what tick marks are displayed.\n      The function should have exactly the same signature as the function you'd use for an\n      `Array.prototype.filter()`.\n    \n      @property tickFilter\n      @type Function\n      @default null\n      @example\n             {{#nf-y-axis tickFilter=myFilter as |tick|}}\n              <text>{{tick.value}}</text>\n            {{/nf-y-axis}}\n    \n      And on your controller:\n      \n            myFilter: function(tick, index, ticks) {\n              return tick.value < 1000;\n            },\n    \n      The above example will filter down the set of ticks to only those that are less than 1000.\n    */\n    tickFilter: computed['default']({\n      get: function get() {\n        return this._tickFilter;\n      },\n      set: function set(name, value) {\n        return this._tickFilter = value;\n      }\n    }),\n\n    /**\n      computed property. returns true if `orient` is equal to `'right'`.\n      @property isOrientRight\n      @type Boolean\n      @readonly\n    */\n    isOrientRight: computed['default'].equal('orient', 'right'),\n\n    /**\n      The SVG transform for positioning the component.\n      @property transform\n      @type String\n      @readonly\n    */\n    transform: computed['default']('x', 'y', function () {\n      var x = this.get('x');\n      var y = this.get('y');\n      return 'translate(' + x + ' ' + y + ')';\n    }),\n\n    /**\n      The x position of the component\n      @property x\n      @type Number\n      @readonly\n    */\n    x: computed['default']('orient', 'graph.width', 'width', 'graph.paddingLeft', 'graph.paddingRight', function () {\n      var orient = this.get('orient');\n      if (orient !== 'left') {\n        return this.get('graph.width') - this.get('width') - this.get('graph.paddingRight');\n      }\n      return this.get('graph.paddingLeft');\n    }),\n\n    /**\n      The y position of the component\n      @property y\n      @type Number\n      @readonly\n    */\n    y: computed['default'].alias('graph.graphY'),\n\n    /** \n      the height of the component\n      @property height\n      @type Number\n      @readonly\n    */\n    height: computed['default'].alias('graph.height'),\n\n    init: function init() {\n      this._super.apply(this, arguments);\n      this.set('graph.yAxis', this);\n    },\n\n    /**\n      A method to call to override the default behavior of how ticks are created.\n       The function signature should match:\n             // - scale: d3.Scale\n            // - tickCount: number of ticks\n            // - uniqueData: unique data points for the axis\n            // - scaleType: string of \"linear\" or \"ordinal\"\n            // returns: an array of tick values.\n            function(scale, tickCount, uniqueData, scaleType) {\n              return [100,200,300];\n            }\n       @property tickFactory\n      @type {Function}\n      @default null\n    */\n    tickFactory: null,\n\n    tickData: computed['default']('graph.yScaleType', 'uniqueYData', 'yScale', 'tickCount', function () {\n      var tickFactory = this.get('tickFactory');\n      var scale = this.get('yScale');\n      var uniqueData = this.get('uniqueYData');\n      var scaleType = this.get('graph.yScaleType');\n      var tickCount = this.get('tickCount');\n\n      if (tickFactory) {\n        return tickFactory(scale, tickCount, uniqueData, scaleType);\n      } else if (scaleType === 'ordinal') {\n        return uniqueData;\n      } else {\n        var ticks = scale.ticks(tickCount);\n        if (scaleType === 'log') {\n          var step = Math.round(ticks.length / tickCount);\n          ticks = ticks.filter(function (tick, i) {\n            return i % step === 0;\n          });\n        }\n        return ticks;\n      }\n    }),\n\n    /**\n      All y data from the graph, filtered to unique values.\n      @property uniqueYData\n      @type Array\n      @readonly\n    */\n    uniqueYData: computed['default'].uniq('graph.yData'),\n\n    /** \n      The ticks to be displayed.\n      @property ticks\n      @type Array\n      @readonly\n    */\n    ticks: computed['default']('yScale', 'tickPadding', 'axisLineX', 'tickLength', 'isOrientRight', 'tickFilter', function () {\n      var yScale = this.get('yScale');\n      var tickPadding = this.get('tickPadding');\n      var axisLineX = this.get('axisLineX');\n      var tickLength = this.get('tickLength');\n      var isOrientRight = this.get('isOrientRight');\n      var tickFilter = this.get('tickFilter');\n      var ticks = this.get('tickData');\n      var x1 = isOrientRight ? axisLineX + tickLength : axisLineX - tickLength;\n      var x2 = axisLineX;\n      var labelx = isOrientRight ? tickLength + tickPadding : axisLineX - tickLength - tickPadding;\n\n      var result = ticks.map(function (tick) {\n        return {\n          value: tick,\n          y: yScale(tick),\n          x1: x1,\n          x2: x2,\n          labelx: labelx\n        };\n      });\n\n      if (tickFilter) {\n        result = result.filter(tickFilter);\n      }\n\n      return Ember['default'].A(result);\n    }),\n\n    /**\n      The x position of the axis line.\n      @property axisLineX\n      @type Number\n      @readonly\n    */\n    axisLineX: computed['default']('isOrientRight', 'width', function () {\n      return this.get('isOrientRight') ? 0 : this.get('width');\n    })\n  });\n\n});","define('garaje/components/nf-y-diff', ['exports', 'ember', 'ember-nf-graph/mixins/graph-has-graph-parent', 'ember-nf-graph/mixins/graph-requires-scale-source', 'ember-nf-graph/utils/nf/scale-utils'], function (exports, Ember, HasGraphParent, RequireScaleSource, scale_utils) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(HasGraphParent['default'], RequireScaleSource['default'], {\n    tagName: 'g',\n\n    attributeBindings: ['transform'],\n\n    classNameBindings: [':nf-y-diff', 'isPositive:positive:negative', 'isOrientRight:orient-right:orient-left'],\n\n    /**\n      The starting domain value of the difference measurement. The subrahend of the difference calculation.\n      @property a\n      @type Number\n      @default null\n    */\n    a: null,\n\n    /**\n      The ending domain value of the difference measurement. The minuend of the difference calculation.\n      @property b\n      @type Number\n      @default null\n    */\n    b: null,\n\n    /**\n      The amount of padding, in pixels, between the edge of the difference \"box\" and the content container\n      @property contentPadding\n      @type Number\n      @default 5\n    */\n    contentPadding: 5,\n\n    /**\n      The duration of the transition, in milliseconds, as the difference slides vertically\n      @property duration\n      @type Number\n      @default 400\n    */\n    duration: 400,\n\n    /**\n      The calculated vertical center of the difference box, in pixels.\n      @property yCenter\n      @type Number\n      @readonly\n    */\n    yCenter: Ember['default'].computed('yA', 'yB', function () {\n      var yA = +this.get('yA') || 0;\n      var yB = +this.get('yB') || 0;\n      return (yA + yB) / 2;\n    }),\n\n    /**\n      The y pixel value of b.\n      @property yB\n      @type Number\n    */\n    yB: Ember['default'].computed('yScale', 'b', function () {\n      return scale_utils.normalizeScale(this.get('yScale'), this.get('b'));\n    }),\n\n    /**\n      The y pixel value of a.\n      @property yA\n      @type Number\n    */\n    yA: Ember['default'].computed('yScale', 'a', function () {\n      return scale_utils.normalizeScale(this.get('yScale'), this.get('a'));\n    }),\n\n    /**\n      The SVG transformation of the component.\n      @property transform\n      @type String\n      @private\n      @readonly\n    */\n    transform: Ember['default'].computed.alias('graph.yAxis.transform'),\n\n    /**\n      The calculated difference between `a` and `b`.\n      @property diff\n      @type Number\n      @readonly\n    */\n    diff: Ember['default'].computed('a', 'b', function () {\n      return +this.get('b') - this.get('a');\n    }),\n\n    /**\n      Returns `true` if `diff` is a positive number\n      @property isPositive\n      @type Boolean\n      @readonly\n    */\n    isPositive: Ember['default'].computed.gte('diff', 0),\n\n    /**\n      Returns `true` if the graph's y-axis component is configured to orient right.\n      @property isOrientRight\n      @type Boolean\n      @readonly\n    */\n    isOrientRight: Ember['default'].computed.equal('graph.yAxis.orient', 'right'),\n\n    /**\n      The width of the difference box\n      @property width\n      @type Number\n      @readonly\n    */\n    width: Ember['default'].computed.alias('graph.yAxis.width'),\n\n    /**\n      The view controller for the view this component is present in\n      @property parentController\n      @type Ember.Controller\n      @private\n      @readonly\n    */\n    parentController: Ember['default'].computed.alias('templateData.view.controller'),\n\n    /**\n      The x pixel coordinate of the content container.\n      @property contentX\n      @type Number\n      @readonly\n    */\n    contentX: Ember['default'].computed('isOrientRight', 'width', 'contentPadding', function () {\n      var contentPadding = this.get('contentPadding');\n      var width = this.get('width');\n      return this.get('isOrientRight') ? width - contentPadding : contentPadding;\n    }),\n\n    rectPath: Ember['default'].computed('yA', 'yB', 'width', function () {\n      var x = 0;\n      var w = +this.get('width') || 0;\n      var x2 = x + w;\n      var yA = +this.get('yA') || 0;\n      var yB = +this.get('yB') || 0;\n      return 'M' + x + ',' + yA + ' L' + x + ',' + yB + ' L' + x2 + ',' + yB + ' L' + x2 + ',' + yA + ' L' + x + ',' + yA;\n    }),\n\n    /**\n      The SVG transformation used to position the content container.\n      @property contentTransform\n      @type String\n      @private\n      @readonly\n    */\n    contentTransform: Ember['default'].computed('contentX', 'yCenter', function () {\n      var contentX = this.get('contentX');\n      var yCenter = this.get('yCenter');\n      return 'translate(' + contentX + ' ' + yCenter + ')';\n    }),\n\n    /**\n      Sets up the d3 related elements when component is inserted \n      into the DOM\n      @method didInsertElement\n    */\n    didInsertElement: function didInsertElement() {\n      var element = this.get('element');\n      var g = d3.select(element);\n\n      var rectPath = this.get('rectPath');\n      var rect = g.insert('path', ':first-child').attr('class', 'nf-y-diff-rect').attr('d', rectPath);\n\n      var contentTransform = this.get('contentTransform');\n      var content = g.select('.nf-y-diff-content');\n      content.attr('transform', contentTransform);\n\n      this.set('rectElement', rect);\n      this.set('contentElement', content);\n    },\n\n    /**\n      Performs the transition (animation) of the elements.\n      @method doTransition\n    */\n    doTransition: function doTransition() {\n      var duration = this.get('duration');\n      var rectElement = this.get('rectElement');\n      var contentElement = this.get('contentElement');\n\n      if (rectElement) {\n        rectElement.transition().duration(duration).attr('d', this.get('rectPath'));\n      }\n\n      if (contentElement) {\n        contentElement.transition().duration(duration).attr('transform', this.get('contentTransform'));\n      }\n    },\n\n    /**\n      Schedules a transition once at afterRender.\n      @method transition\n    */\n    transition: Ember['default'].observer('a', 'b', function () {\n      Ember['default'].run.once(this, this.doTransition);\n    }),\n\n    /**\n      Updates to d3 managed DOM elments that do\n      not require transitioning, because they're width-related.\n      @method doAdjustWidth\n    */\n    doAdjustWidth: function doAdjustWidth() {\n      var contentElement = this.get('contentElement');\n      if (contentElement) {\n        var contentTransform = this.get('contentTransform');\n        contentElement.attr('transform', contentTransform);\n      }\n    },\n\n    adjustGraphHeight: Ember['default'].on('didInsertElement', Ember['default'].observer('graph.graphHeight', function () {\n      var rectElement = this.get('rectElement');\n      var contentElement = this.get('contentElement');\n\n      if (rectElement) {\n        rectElement.attr('d', this.get('rectPath'));\n      }\n\n      if (contentElement) {\n        contentElement.attr('transform', this.get('contentTransform'));\n      }\n    })),\n\n    /**\n      Schedules a call to `doAdjustWidth` on afterRender\n      @method adjustWidth\n    */\n    adjustWidth: Ember['default'].on('didInsertElement', Ember['default'].observer('isOrientRight', 'width', 'contentPadding', function () {\n      Ember['default'].run.once(this, this.doAdjustWidth);\n    }))\n  });\n\n});","define('garaje/components/onboarding-flash-message', ['exports', 'ember', 'garaje/components/flash-message'], function (exports, Em, FlashMessage) {\n\n  'use strict';\n\n  exports['default'] = FlashMessage['default'].extend({\n    classNameBindings: [':messageBar', 'type', 'isFlashVisible:showFlash:hideFlash', 'isFlashVisible:onboardingFlashVisible', ':onboardingMessage'],\n\n    layoutName: 'components/flash-message',\n\n    isFlashVisible: Em['default'].computed.or('flashVisible')\n\n  });\n\n});","define('garaje/components/onboarding-header', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'header',\n    classNames: ['onboardingHeader'],\n\n    remainingSteps: Ember['default'].computed('stepNumber', 'totalSteps', function () {\n      return this.get('totalSteps') - this.get('stepNumber');\n    })\n\n  });\n\n});","define('garaje/components/payment-row', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'tr',\n\n    date: Ember['default'].computed.alias('payment.date'),\n    pdf: Ember['default'].computed.alias('payment.pdf'),\n    refunded: Ember['default'].computed.alias('payment.refunded'),\n\n    amount: Ember['default'].computed('payment.amount', function () {\n      return this.get('payment.amount') / 100;\n    }),\n\n    amountRefunded: Ember['default'].computed('payment.amountRefunded', function () {\n      return this.get('payment.amountRefunded') / 100;\n    }),\n\n    status: Ember['default'].computed('payment.status', 'payment.amountRefunded', 'payment.amount', 'refunded', function () {\n      var status = this.get('payment.status');\n      if (status === 'upcoming') {\n        return { classes: 'paymentIcon icon-next', text: 'Next payment' };\n      } else if (status === 'failed') {\n        return { classes: 'paymentIcon icon-alert', text: 'Failed' };\n      } else if (status === 'paid') {\n        if (this.get('refunded')) {\n          if (this.get('payment.amountRefunded') === this.get('payment.amount')) {\n            return { classes: 'paymentIcon icon-refund', text: 'Refunded' };\n          } else {\n            return { classes: 'paymentIcon icon-refund icon-refund-partial', text: 'Partially refunded' };\n          }\n        } else {\n          return { classes: 'paymentIcon icon-paid', text: 'Paid' };\n        }\n      }\n    })\n  });\n\n});","define('garaje/components/phone-input', ['exports', 'ember', 'garaje/components/labeled-input'], function (exports, Ember, LabeledInput) {\n\n  'use strict';\n\n  exports['default'] = LabeledInput['default'].extend({\n    layoutName: 'components/labeled-input',\n    type: 'tel',\n\n    _init: Ember['default'].on('didInsertElement', function () {\n      Ember['default'].run.next(this, function () {\n        if (this.get('isDestroyed')) {\n          return;\n        }\n\n        this.$('input').intlTelInput({\n          defaultCountry: this.get('defaultCountry'),\n          preferredCountries: ['us'],\n          ipinfoToken: '36ebffded95f73',\n          autoPlaceholder: false\n        });\n\n        var parent = this.$('.intl-tel-input');\n\n        this.$('input').on('focus', function () {\n          parent.addClass('is-focused');\n        }).on('blur', function () {\n          parent.removeClass('is-focused');\n        });\n      });\n    }),\n\n    _destroy: Ember['default'].on('willDestroyElement', function () {\n      this.$('input').intlTelInput('destroy');\n      this.$('input').off('focus, blur');\n    }),\n\n    phoneNumber: Ember['default'].computed('value', {\n      get: function get() {\n        // return the international format\n        return this.$('input').intlTelInput('getNumber');\n      },\n      set: function set(k, phoneNumber) {\n        if (this._state === 'inDOM') {\n          Ember['default'].run(this, function () {\n            this.$('input').intlTelInput('setNumber', phoneNumber || '');\n          });\n        }\n        return phoneNumber;\n      }\n    }),\n\n    value: Ember['default'].computed('phoneNumber', {\n      get: function get() {\n        if (this._state === 'inDOM') {\n          // return the national format\n          return this.$('input').val();\n        } else {\n          // this fallback is needed when we hard reload a page\n          // containing a phone-input and the component is not\n          // ready yet.\n          return this.get('phoneNumber');\n        }\n      }\n    })\n  });\n\n});","define('garaje/components/plan-button', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'button',\n    classNameBindings: [':btn', ':btn--medium', 'buttonType'],\n    attributeBindings: ['disabled'],\n\n    subscription: Ember['default'].inject.service(),\n\n    disabled: Ember['default'].computed.alias('isNotUpgradeable'),\n\n    // \"public\" API\n    buttonType: Ember['default'].computed('isPremium', function () {\n      if (this.get('isPremium')) {\n        return 'btn--white';\n      }\n      return 'btn--outlineFill';\n    }),\n\n    buttonText: Ember['default'].computed('isUpgradeableToYearlyPeriod', 'isUpgradeableToNewPlan', 'plan.name', 'isNotUpgradeable', 'isContactUs', 'isOnTrial', 'isMultiLocationRequired', 'isLegacy', function () {\n      if (this.get('isLegacy')) {\n        return 'Contact Us';\n      }\n\n      if (this.get('isUpgradeableToYearlyPeriod')) {\n        return 'Upgrade to Yearly';\n      }\n\n      if (this.get('isUpgradeableToNewPlan')) {\n        return 'Upgrade to ' + this.get('plan.name');\n      }\n\n      if (this.get('isNotUpgradeable')) {\n        return 'Your Current Plan';\n      }\n\n      if (this.get('isContactUs') || this.get('isMultiLocationRequired')) {\n        return 'Contact Us';\n      }\n\n      if (this.get('isOnTrial')) {\n        return 'Choose ' + this.get('plan.name');\n      }\n    }),\n\n    click: function click() {\n      if (this.get('isContactUs')) {\n        return this.sendAction('action');\n      }\n\n      var period = undefined;\n      if (this.get('isUpgradeableToNewPlan')) {\n        period = this.get('currentPlan.period');\n\n        if (this.get('subscription.isFreePlanEnabled') && this.get('currentPlan.plan') === 'standard' && period === 'monthly') {\n          period = 'yearly';\n        }\n      } else {\n        period = 'yearly';\n      }\n\n      this.sendAction('action', this.get('plan.id'), period);\n      return false;\n    },\n\n    // private API\n    isStandard: Ember['default'].computed.equal('plan.id', 'standard'),\n    isEnterprise: Ember['default'].computed.equal('plan.id', 'enterprise'),\n    isPremium: Ember['default'].computed.equal('plan.id', 'premium'),\n    isOnTrial: Ember['default'].computed.empty('currentPlan'),\n    isYearlyPeriod: Ember['default'].computed.equal('currentPlan.period', 'yearly'),\n    isContactUs: Ember['default'].computed.or('isEnterprise', 'isDowngrade', 'isMultiLocationRequired'),\n\n    isLegacy: Ember['default'].computed('currentPlan.plan', function () {\n      var currentPlan = this.get('currentPlan.plan');\n      return currentPlan && !['standard', 'premium', 'enterprise'].contains(currentPlan);\n    }),\n\n    isSamePlan: Ember['default'].computed('plan.id', 'currentPlan.plan', function () {\n      return this.get('plan.id') === this.get('currentPlan.plan');\n    }),\n\n    isUpgradeableToYearlyPeriod: Ember['default'].computed('isSamePlan', 'isYearlyPeriod', function () {\n      return this.get('isSamePlan') && !this.get('isYearlyPeriod');\n    }),\n\n    isUpgradeableToNewPlan: Ember['default'].computed('currentPlan.plan', 'plan.id', function () {\n      return this.get('currentPlan.plan') === 'standard' && this.get('plan.id') === 'premium';\n    }),\n\n    isDowngrade: Ember['default'].computed('currentPlan.plan', 'plan.id', function () {\n      var newPlan = this.get('plan.id'),\n          oldPlan = this.get('currentPlan.plan');\n\n      return newPlan === 'standard' && ['premium', 'enterprise'].contains(oldPlan) || newPlan === 'premium' && oldPlan === 'enterprise';\n    }),\n\n    isNotUpgradeable: Ember['default'].computed('isSamePlan', 'isYearlyPeriod', 'isLegacy', function () {\n      return this.get('isSamePlan') && this.get('isYearlyPeriod') && !this.get('isLegacy');\n    }),\n\n    isMultiLocationRequired: Ember['default'].computed('numberOfActiveLocations', 'isStandard', 'isOnTrial', function () {\n      return this.get('numberOfActiveLocations') > 1 && this.get('isOnTrial') && this.get('isStandard');\n    })\n  });\n\n});","define('garaje/components/plan-ledger', ['exports', 'ember', 'garaje/utils/simple-ledger', 'garaje/utils/location-line-item', 'garaje/utils/refund-line-item', 'garaje/utils/charge-line-item', 'garaje/mixins/highlight-changes', 'ember-moment/computeds/format'], function (exports, Ember, SimpleLedger, LocationLineItem, RefundLineItem, ChargeLineItem, HighlightChanges, computedMoment) {\n\n  'use strict';\n\n  var alias = Ember['default'].computed.alias;\n\n  exports['default'] = Ember['default'].Component.extend(HighlightChanges['default'], {\n    tagName: 'fieldset',\n\n    totalPrice: alias('ledger.total'),\n\n    dueNow: alias('ledger.dueNow'),\n\n    isPlanChanging: Ember['default'].computed('plan', 'newPlan', function () {\n      return this.get('plan') !== this.get('newPlan');\n    }),\n\n    highlightProperties: ['newPeriod', 'discountChanged', 'totalPrice'],\n\n    hasCreditBalance: Ember['default'].computed('creditBalance', function () {\n      var creditBalance = this.get('creditBalance') || 0;\n      return creditBalance !== 0;\n    }),\n\n    discountLineItem: alias('ledger.discountLineItem'),\n    discountChanged: alias('discountLineItem.amount'),\n\n    refundLineItem: Ember['default'].computed('activeLocations.length', 'period', 'plan', 'periodStart', 'periodEnd', function () {\n      var periodStart = this.get('periodStart');\n      if (periodStart) {\n        return RefundLineItem['default'].create({\n          quantity: this.get('activeLocations.length'),\n          period: this.get('period'),\n          plan: this.get('plan'),\n          periodStart: periodStart,\n          periodEnd: this.get('periodEnd'),\n          newPeriodEnd: moment().unix()\n        });\n      }\n    }),\n\n    chargeLineItem: Ember['default'].computed('quantity', // cp based in attrs.locations\n    'period', // attr\n    'plan', // attr\n    'periodStart', // attr\n    'periodEnd', // attr\n    'newPeriod', // attr\n    'newPlan', // attr\n    function () {\n      return ChargeLineItem['default'].create({\n        quantity: this.get('quantity'),\n        period: this.get('period'),\n        plan: this.get('plan'),\n        periodStart: this.get('periodStart'),\n        periodEnd: this.get('periodEnd'),\n        newPeriodStart: moment().unix(),\n        newPeriod: this.get('newPeriod'),\n        newPlan: this.get('newPlan')\n      });\n    }),\n\n    renewalDate: computedMoment['default']('chargeLineItem.newPeriodEnd', 'MMM D, YYYY', 'X'),\n\n    proratedDiscount: alias('ledger.proratedDiscount'),\n\n    debug: false,\n\n    quantity: Ember['default'].computed('locations.length', function () {\n      return this.get('locations.length') || 1;\n    }),\n\n    activeLocations: Ember['default'].computed('locations.[]', function () {\n      return this.get('locations').filter(function (location) {\n        return !location.get('disabled') && !location.get('isNew');\n      });\n    }),\n\n    sortedLocations: Ember['default'].computed('locations.[]', function () {\n      return this.get('locations').sortBy('isNew', 'name');\n    }),\n\n    ledger: Ember['default'].computed({\n      get: function get() {\n        return SimpleLedger['default'].create({\n          lineItems: []\n        });\n      }\n    }).readOnly(),\n\n    locationLineItems: [],\n\n    didInitAttrs: function didInitAttrs() {\n      this._setup();\n    },\n    didUpdateAttrs: function didUpdateAttrs() {\n      this._setup();\n    },\n    _setup: function _setup() {\n      if (!this.get('newPlan')) {\n        this.set('newPlan', this.get('plan'));\n      }\n      if (!this.get('newPeriod')) {\n        this.set('newPeriod', this.get('period'));\n      }\n\n      this._setLocationLineItems();\n      this._updateLedger();\n    },\n\n    _setLocationLineItems: function _setLocationLineItems() {\n      var period = this.get('newPeriod');\n      var plan = this.get('newPlan');\n\n      var lineItems = this.get('sortedLocations');\n\n      if (Ember['default'].isBlank(lineItems)) {\n        var defaultLineItemName = Ember['default'].get(plan, 'name') + ' ' + period.capitalize();\n        lineItems = [{\n          name: 'default',\n          nameWithCompanyName: defaultLineItemName\n        }];\n      }\n\n      var locationLineItems = lineItems.map(function (location) {\n        return LocationLineItem['default'].create({\n          location: location,\n          period: period,\n          plan: plan\n        });\n      });\n\n      this.get('locationLineItems').setObjects(locationLineItems);\n    },\n\n    _updateLedger: function _updateLedger() {\n      this.get('ledger').setProperties({\n        lineItems: this.get('locationLineItems'),\n        coupon: this.get('coupon'),\n        refund: this.get('refundLineItem'),\n        charge: this.get('chargeLineItem')\n      });\n    },\n\n    actions: {\n      toggleDebug: function toggleDebug() {\n        this.toggleProperty('debug');\n      }\n    }\n  });\n\n});","define('garaje/components/pre-registration-email-preview', ['exports', 'ember', 'garaje/utils/url-builder'], function (exports, Ember, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    editEmailVisible: true,\n    previewEmailObject: null,\n\n    currentLocation: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n\n    actions: {\n\n      setEmailPreviewActive: function setEmailPreviewActive() {\n        this.set('editEmailVisible', false);\n        this.send('getEmailPreview');\n      },\n\n      setEmailEditActive: function setEmailEditActive() {\n        this.set('editEmailVisible', true);\n      },\n\n      sendTestEmail: function sendTestEmail(callback) {\n        var self = this;\n        var promise = this.get('ajax').request(urlBuilder['default'].v1.sendInvitePreviewUrl(this.get('model.id')), {\n          type: 'POST',\n          data: { notes: this.get('model.preRegistrationNotes') }\n        }).then(function () {\n          self.set('testEmailSent', true);\n          Ember['default'].run.later(this, function () {\n            self.set('testEmailSent', false);\n          }, 2500);\n        });\n        callback(promise);\n      },\n\n      getEmailPreview: function getEmailPreview() {\n        var self = this;\n        var preRegistrationNotes = this.get('model.preRegistrationNotes');\n\n        if (this.get('lastMarkdown') !== preRegistrationNotes) {\n          this.setProperties({\n            lastMarkdown: preRegistrationNotes,\n            previewEmailObject: null\n          });\n          this.get('ajax').request(urlBuilder['default'].v1.invitePreviewUrl(this.get('model.id')), {\n            type: 'POST',\n            data: { notes: preRegistrationNotes }\n          }).then(function (response) {\n            self.set('previewEmailObject', response);\n          });\n        }\n      }\n    }\n  });\n\n});","define('garaje/components/printer-config/component', ['exports', 'ember', 'garaje/utils/flash-promise'], function (exports, Ember, flashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    isEditing: false,\n    isIPBlank: Ember['default'].computed.empty('model.ip'),\n    isPrinterEditable: Ember['default'].computed.or('model.enabled', 'isIPBlank'),\n    isPrinterEditableAndFulfilled: Ember['default'].computed.and('isPrinterEditable', 'isFulfilled'),\n\n    isDirty: Ember['default'].computed.alias('model.hasDirtyAttributes'),\n\n    isSelfAssignedIP: Ember['default'].computed('model.ip', function () {\n      var ip = this.get('model.ip') || '';\n      return ip.indexOf('169.254') === 0;\n    }),\n\n    isFulfilled: true,\n\n    actions: {\n      save: function save(callback) {\n        var _this = this;\n\n        this.set('model.enabled', !this.get('isIPBlank'));\n\n        var promise = this.get('model').save().then(function () {\n          return _this.set('isEditing', false);\n        });\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      enablePrinter: function enablePrinter(callback) {\n        var _this2 = this;\n\n        this.setProperties({\n          'model.enabled': true,\n          isFulfilled: false\n        });\n\n        var promise = this.get('model').save().then(function () {\n          return _this2.set('isFulfilled', true);\n        });\n\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      disablePrinter: function disablePrinter(callback) {\n        var _this3 = this;\n\n        this.set('model.enabled', false);\n\n        var promise = this.get('model').save().then(function () {\n          return _this3.set('isEditing', false);\n        });\n\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      edit: function edit() {\n        this.set('isEditing', true);\n      },\n\n      rollback: function rollback() {\n        this.get('model').rollbackAttributes();\n      }\n    }\n  });\n\n});","define('garaje/components/printer-config/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 15,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 14\n              }\n            },\n            \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"p\");\n            dom.setAttribute(el1,\"class\",\"m0\");\n            var el2 = dom.createTextNode(\"Assign a printer.\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 14\n              },\n              \"end\": {\n                \"line\": 19,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"code\");\n            dom.setAttribute(el1,\"class\",\"m0 js-printer-ip\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"model.ip\",[\"loc\",[null,[18,45],[18,57]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 22,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 24,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\",\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSelfAssignedIP\",[\"loc\",[null,[23,121],[23,137]]]]],[],[]]],[\"loc\",[null,[23,14],[23,139]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 24,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 26,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"a\");\n                dom.setAttribute(el1,\"href\",\"#\");\n                dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue js-enable-printer\");\n                var el2 = dom.createTextNode(\"Enable\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element3 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element3);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"edit\"],[],[\"loc\",[null,[25,77],[25,94]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 26,\n                      \"column\": 14\n                    },\n                    \"end\": {\n                      \"line\": 28,\n                      \"column\": 14\n                    }\n                  },\n                  \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"              \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"a\");\n                  dom.setAttribute(el1,\"href\",\"#\");\n                  dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n                  var el2 = dom.createTextNode(\"Edit\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element2 = dom.childAt(fragment, [1]);\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createElementMorph(element2);\n                  return morphs;\n                },\n                statements: [\n                  [\"element\",\"action\",[\"edit\"],[],[\"loc\",[null,[27,59],[27,76]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 28,\n                      \"column\": 14\n                    },\n                    \"end\": {\n                      \"line\": 30,\n                      \"column\": 12\n                    }\n                  },\n                  \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"              \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createComment(\"\");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n            \");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                  return morphs;\n                },\n                statements: [\n                  [\"inline\",\"async-button\",[],[\"action\",\"enablePrinter\",\"class\",\"btn btn--small btn--blue js-enable-printer\",\"default\",\"Enable\",\"pending\",\"Enabling...\"],[\"loc\",[null,[29,14],[29,143]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 26,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 30,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"if\",[[\"get\",\"isPrinterEditableAndFulfilled\",[\"loc\",[null,[26,24],[26,53]]]]],[],0,1,[\"loc\",[null,[26,14],[30,12]]]]\n              ],\n              locals: [],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 24,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 30,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"isIPBlank\",[\"loc\",[null,[24,24],[24,33]]]]],[],0,1,[\"loc\",[null,[24,14],[30,12]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 21,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 31,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[22,18],[22,28]]]]],[],0,1,[\"loc\",[null,[22,12],[30,19]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 34,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 56,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"col col-6\");\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"We support the \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"a\");\n            var el5 = dom.createTextNode(\"Brother QL-710W and QL-720NW printers\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\".\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"ol\");\n            var el4 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"li\");\n            var el5 = dom.createTextNode(\"Set up your printer. \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"a\");\n            dom.setAttribute(el5,\"href\",\"https://help.envoy.co/getting-started/enable-badge-printing/\");\n            dom.setAttribute(el5,\"target\",\"_blank\");\n            dom.setAttribute(el5,\"class\",\"help\");\n            dom.setAttribute(el5,\"tabindex\",\"-1\");\n            var el6 = dom.createTextNode(\"Learn More\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"li\");\n            var el5 = dom.createTextNode(\"Find the IP address: on the printer, press and hold the cut button until badges begin to print. Five badges will print. On the fourth, look for the IP address, a series of numbers separated by periods (for example: \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"code\");\n            var el6 = dom.createTextNode(\"192.168.1.44\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\" or \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"code\");\n            var el6 = dom.createTextNode(\"10.0.1.23\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\").\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createElement(\"b\");\n            var el5 = dom.createTextNode(\"Note:\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" Your printer and iPad must be on the same network.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1, 1]);\n            var element1 = dom.childAt(element0, [3, 1]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(element0,1,1);\n            morphs[1] = dom.createElementMorph(element1);\n            morphs[2] = dom.createMorphAt(fragment,3,3,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.ip\",[\"loc\",[null,[38,20],[38,28]]]]],[],[]],\"autofocus\",true,\"inputClass\",\"badge-printerip js-printer-ip\",\"label\",\"Printer IP Address\",\"errorLabel\",\"IP is invalid. Check out <a href=\\\"https://help.envoy.co/printers-and-badges/troubleshooting-the-brother-printer/#nothing-is-printing-or-envoy-app-shows-connection-error\\\" target=\\\"_blank\\\">the printer guide</a> and try again.\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"isSelfAssignedIP\",[\"loc\",[null,[43,24],[43,40]]]]],[],[]]],[\"loc\",[null,[37,14],[43,42]]]],\n            [\"element\",\"action\",[\"redirectToEnvoy\",\"/store\"],[],[\"loc\",[null,[45,35],[45,72]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"disablePrinter\",\"class\",\"btn btn--small btn--outline right\",\"default\",\"Disable\",\"pending\",\"Disabling...\",\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSelfAssignedIP\",[\"loc\",[null,[55,141],[55,157]]]]],[],[]],\"tabindex\",\"-1\"],[\"loc\",[null,[55,10],[55,173]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 58,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-badge-printer\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/features/printer.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Badge printer\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"          \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var element5 = dom.childAt(element4, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element5, [3]),3,3);\n          morphs[1] = dom.createMorphAt(element5,5,5);\n          morphs[2] = dom.createMorphAt(element4,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"isIPBlank\",[\"loc\",[null,[15,18],[15,27]]]]],[],0,1,[\"loc\",[null,[15,12],[19,19]]]],\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[21,37],[21,40]]]]],[],[]]],2,null,[\"loc\",[null,[21,10],[31,31]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[34,21],[34,31]]]]],[\"class\",\"js-tokenized\"],3,null,[\"loc\",[null,[34,8],[56,22]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"modifiers\",\n          \"modifiers\": [\n            \"action\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 61,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/components/printer-config/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"form\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        dom.setAttribute(el3,\"class\",\"mt4\");\n        var el4 = dom.createTextNode(\"Badge Printer\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"h5 grayDark\");\n        var el4 = dom.createTextNode(\"Configure your printer for automatic badge printing.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element6 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createElementMorph(element6);\n        morphs[1] = dom.createMorphAt(dom.childAt(element6, [1]),5,5);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"enablePrinter\"],[\"on\",\"submit\"],[\"loc\",[null,[1,6],[1,44]]]],\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditing\",[\"loc\",[null,[7,28],[7,37]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"isDirty\",[\"loc\",[null,[7,46],[7,53]]]]],[],[]],\"rollback\",\"rollback\"],0,null,[\"loc\",[null,[7,4],[58,22]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/components/receptionist-config/component', ['exports', 'ember', 'garaje/utils/flash-promise', 'ember-validations'], function (exports, Ember, flashPromise, Validations) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Validations['default'], {\n    validated: false,\n\n    validations: {\n      'model.email': { email: true }\n    },\n\n    currentLocation: Ember['default'].inject.service(),\n\n    isBothFilled: Ember['default'].computed.and('model.name', 'model.email'),\n    isBothBlank: Ember['default'].computed('model.name', 'model.email', function () {\n      return Ember['default'].isBlank(this.get('model.name')) && Ember['default'].isBlank(this.get('model.email'));\n    }),\n\n    isDirty: Ember['default'].computed.alias('model.hasDirtyAttributes'),\n\n    actions: {\n      save: function save(callback) {\n        var _this = this;\n\n        if (this.get('isBothBlank')) {\n          this.set('currentLocation.receptionist', null);\n        }\n\n        this.set('validated', true);\n\n        var promise = this.validate()['catch'](function () {\n          return Ember['default'].RSVP.reject('Some fields are incomplete');\n        }).then(function () {\n          _this.set('validated', false);\n          return _this.get('currentLocation').save();\n        }).then(function () {\n          return _this.attrs.transitionToRoute('location');\n        });\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      rollback: function rollback() {\n        this.get('model').rollbackAttributes();\n      },\n\n      backToLocation: function backToLocation() {\n        this.set('validated', false);\n        return true;\n      }\n    }\n  });\n\n});","define('garaje/components/receptionist-config/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 7,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"gravatar-image\",[],[\"email\",[\"subexpr\",\"@mut\",[[\"get\",\"model.email\",[\"loc\",[null,[6,33],[6,44]]]]],[],[]],\"altImage\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.logo.thumbUrl\",[\"loc\",[null,[6,54],[6,83]]]]],[],[]],\"class\",\"mx-auto gravatar\"],[\"loc\",[null,[6,10],[6,110]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 7,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 9,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"gravatar-image\",[],[\"email\",[\"subexpr\",\"@mut\",[[\"get\",\"model.email\",[\"loc\",[null,[8,33],[8,44]]]]],[],[]],\"altImage\",null,\"class\",\"mx-auto gravatar-image gravatar\"],[\"loc\",[null,[8,10],[8,100]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 17,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 19,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green js-save-button\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[18,12],[18,126]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 19,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 21,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"link-to\",[\"Edit\",\"receptionist\"],[\"class\",\"btn btn--small btn--blue js-edit-button\"],[\"loc\",[null,[20,12],[20,93]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 16,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 22,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[17,16],[17,26]]]]],[],0,1,[\"loc\",[null,[17,10],[21,17]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 22,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 24,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"link-to\",[\"Enable\",\"receptionist\"],[\"class\",\"btn btn--small btn--blue js-enable-button\"],[\"loc\",[null,[23,10],[23,95]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 15,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 25,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"model\",[\"loc\",[null,[16,14],[16,19]]]]],[],0,1,[\"loc\",[null,[16,8],[24,15]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child3 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 31,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 38,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.name\",[\"loc\",[null,[33,18],[33,28]]]]],[],[]],\"label\",\"Full Name\",\"inputClass\",\"location-receptionistname\",\"autofocus\",true],[\"loc\",[null,[32,12],[37,14]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 40,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 50,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"email-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.email\",[\"loc\",[null,[42,18],[42,29]]]]],[],[]],\"label\",\"Email Address\",\"inputClass\",\"location-receptionistemail\",\"autocomplete\",\"off\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.email\",[\"loc\",[null,[46,22],[46,40]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[47,22],[47,31]]]]],[],[]],\"errorLabel\",\"Please Format Email Correctly\"],[\"loc\",[null,[41,12],[49,14]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 28,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 53,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"col col-6\");\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1, 1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(element0,1,1);\n            morphs[1] = dom.createMorphAt(element0,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"model\",[\"loc\",[null,[31,16],[31,21]]]]],[],0,null,[\"loc\",[null,[31,10],[38,17]]]],\n            [\"block\",\"if\",[[\"get\",\"model\",[\"loc\",[null,[40,16],[40,21]]]]],[],1,null,[\"loc\",[null,[40,10],[50,17]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 55,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 flex flex-column js-location-receptionist\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex flex-center\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px;overflow:hidden;\");\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          dom.setAttribute(el4,\"class\",\"js-receptionist-name\");\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0 js-receptionist-email\");\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var element2 = dom.childAt(element1, [1]);\n          var element3 = dom.childAt(element2, [3]);\n          var morphs = new Array(5);\n          morphs[0] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n          morphs[1] = dom.createMorphAt(dom.childAt(element3, [1]),0,0);\n          morphs[2] = dom.createMorphAt(dom.childAt(element3, [3]),0,0);\n          morphs[3] = dom.createMorphAt(element2,5,5);\n          morphs[4] = dom.createMorphAt(element1,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"model\",[\"loc\",[null,[5,14],[5,19]]]]],[],0,1,[\"loc\",[null,[5,8],[9,15]]]],\n          [\"inline\",\"with-fallback\",[[\"get\",\"model.name\",[\"loc\",[null,[12,57],[12,67]]]],\"Receptionist\"],[],[\"loc\",[null,[12,41],[12,84]]]],\n          [\"inline\",\"with-fallback\",[[\"get\",\"model.email\",[\"loc\",[null,[13,60],[13,71]]]],\"Assign a receptionist.\"],[],[\"loc\",[null,[13,44],[13,98]]]],\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[15,33],[15,36]]]]],[],[]]],2,null,[\"loc\",[null,[15,6],[25,27]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[28,17],[28,27]]]]],[\"class\",\"js-tokenized\"],3,null,[\"loc\",[null,[28,4],[53,18]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 56,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/components/receptionist-config/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isEditing\",[\"loc\",[null,[1,24],[1,39]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"isDirty\",[\"loc\",[null,[1,48],[1,55]]]]],[],[]],\"action\",\"backToLocation\",\"rollback\",\"rollback\"],0,null,[\"loc\",[null,[1,0],[55,18]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/components/select-2', ['exports', 'ember-select-2/components/select-2'], function (exports, Select2Component) {\n\n\t'use strict';\n\n\t/*\n\t\tThis is just a proxy file requiring the component from the /addon folder and\n\t\tmaking it available to the dummy application!\n\t */\n\texports['default'] = Select2Component['default'];\n\n});","define('garaje/components/sign-out-dropdown', ['exports', 'ember', 'moment'], function (exports, Ember, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    startTime: moment['default']().toDate(),\n    timesArray: Ember['default'].computed('signInTime', function () {\n      var times = [];\n      var hours, minutes, ampm;\n      var totalMinutes = moment['default'](this.get('signInTime')).minutes() + moment['default'](this.get('signInTime')).hours() * 60;\n      var roundedMinutes = 15 * Math.round(totalMinutes / 15);\n\n      for (var i = roundedMinutes; i <= 1320; i += 15) {\n        hours = Math.floor(i / 60);\n        minutes = i % 60;\n        if (minutes < 10) {\n          minutes = '0' + minutes;\n        }\n        ampm = hours % 24 < 12 ? 'AM' : 'PM';\n        hours = hours % 12;\n        if (hours === 0) {\n          hours = 12;\n        }\n        times.push(hours + ':' + minutes + ' ' + ampm);\n      }\n      return times;\n    }),\n\n    closestTime: Ember['default'].computed('timesArray.[]', function () {\n      var dates = this.get('timesArray').map(function (date) {\n        return moment['default'](date, \"h:mm a\").toDate();\n      });\n      var startTime = this.get('startTime');\n      var nearestDate,\n          nearestDiff = Infinity;\n      for (var i = 0; i < dates.length; ++i) {\n        var diff = +dates[i] - startTime;\n        if (diff > 0 && diff < nearestDiff) {\n          nearestDiff = diff;\n          nearestDate = dates[i];\n        }\n      }\n      return nearestDate;\n    }),\n\n    change: function change(e) {\n      this.sendAction('action', e.target.value);\n    },\n\n    actions: {\n\n      signOut: function signOut() {\n        this.sendAction('action');\n      }\n    }\n\n  });\n\n});","define('garaje/components/sortable-group', ['exports', 'ember-sortable/components/sortable-group'], function (exports, sortableGroup) {\n\n\t'use strict';\n\n\texports['default'] = sortableGroup['default'];\n\n});","define('garaje/components/sortable-item', ['exports', 'ember-sortable/components/sortable-item', 'ember'], function (exports, sortableItem, Ember) {\n\n  'use strict';\n\n  exports['default'] = sortableItem['default'].extend({\n    // fix-me, input should fire the draggable\n    _startDrag: function _startDrag(event) {\n      if (Ember['default'].$(event.target).siblings('input').length || event.target.tagName === 'INPUT' || event.target.tagName === 'TEXTAREA' || event.target.tagName === 'TEXTAREA' || event.target.getAttribute('data-ember-action')) {\n        return event;\n      } else {\n        this._super(event);\n      }\n    }\n  });\n\n});","define('garaje/components/stand-description', ['exports', 'ember'], function (exports, Ember) {\n\n\t'use strict';\n\n\texports['default'] = Ember['default'].Component.extend({});\n\n});","define('garaje/components/tokenized-box', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    confirmAction: function confirmAction() {\n      return window.confirm(\"You will lose any unsaved changes. Are you sure you want to continue?\");\n    },\n    actions: {\n      close: function close() {\n        if (this.get('isDirty') && this.confirmAction()) {\n          this.sendAction('rollback');\n        } else if (this.get('isDirty')) {\n          return;\n        }\n        this.set('isOpen', false);\n        this.sendAction('action');\n      },\n      open: function open() {\n        this.set('isOpen', true);\n      }\n    }\n  });\n\n});","define('garaje/components/tokenized-button', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['mr1'],\n\n    action: 'close',\n\n    _setParentView: Ember['default'].on('init', function () {\n      if (!Ember['default'].isBlank(this.get('parent'))) {\n        this.set('targetObject', this.get('parent'));\n      }\n    }),\n\n    actions: {\n      close: function close() {\n        this.sendAction('action');\n      }\n    }\n  });\n\n});","define('garaje/components/up-to', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: '',\n\n    items: Ember['default'].computed('count', function () {\n      var items = [];\n      for (var i = 0; i < this.get('count'); i++) {\n        items.push(i);\n      }\n      return items;\n    })\n\n  });\n\n});","define('garaje/components/week-row', ['exports', 'ember', 'moment'], function (exports, Ember, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'tr',\n    classNames: [\"calendar-row\"],\n    daysArray: Ember['default'].computed('startDate', 'selectedDate', 'events.[]', 'invites.[]', function () {\n      var startDate = moment['default'](this.get('startDate'));\n\n      var days = [];\n      var snapshot;\n\n      var events = this.get('events').map(function (event) {\n        return event.format('YYYYMMDD');\n      });\n\n      var invites = this.get('invites').map(function (event) {\n        return event.format('YYYYMMDD');\n      });\n\n      for (var i = 0; i < 7; i++) {\n        snapshot = startDate.clone();\n\n        var hasEvents = events.contains(snapshot.format('YYYYMMDD'));\n        var hasInvites = invites.contains(snapshot.format('YYYYMMDD'));\n\n        days.push({\n          date: snapshot,\n          events: hasEvents,\n          invites: hasInvites\n        });\n        startDate.add(1, 'day');\n      }\n      return days;\n    }),\n\n    actions: {\n      selectDate: function selectDate(selectedDate) {\n        this.sendAction('action', selectedDate);\n      }\n    }\n  });\n\n});","define('garaje/components/x-option', ['exports', 'emberx-select/components/x-option'], function (exports, XOption) {\n\n\t'use strict';\n\n\texports['default'] = XOption['default'];\n\n});","define('garaje/components/x-select-blockless', ['exports', 'emberx-select-blockless/components/x-select-blockless'], function (exports, x_select_blockless) {\n\n\t'use strict';\n\n\n\n\texports['default'] = x_select_blockless['default'];\n\n});","define('garaje/components/x-select', ['exports', 'emberx-select/components/x-select'], function (exports, XSelect) {\n\n\t'use strict';\n\n\texports['default'] = XSelect['default'];\n\n});","define('garaje/controllers/application', ['exports', 'ember', 'npm:semver', 'garaje/utils/url-builder'], function (exports, Ember, semver, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    isSubscribed: Ember['default'].computed.alias('subscription.isSubscribed'),\n    isOnTrial: Ember['default'].computed.not('isSubscribed'),\n    trialDaysLeft: Ember['default'].computed.alias('subscription.trialDaysLeft'),\n    isTrialEndingSoon: Ember['default'].computed.lte('trialDaysLeft', 5),\n    isStandardTrialDaysLeft: Ember['default'].computed.lte('trialDaysLeft', 365),\n    isTrialDaysLeftDisplayed: Ember['default'].computed.and('isOnTrial', 'isStandardTrialDaysLeft'),\n    hasTrialDaysLeft: Ember['default'].computed.alias('subscription.hasTrialDaysLeft'),\n\n    company: Ember['default'].computed.alias('currentLocation.company'),\n\n    location: Ember['default'].inject.controller(),\n    locations: Ember['default'].inject.service(),\n    session: Ember['default'].inject.service(),\n\n    isBetaToggleDisplayed: true,\n\n    isNewVersionAvailable: Ember['default'].computed('currentLocation.installedVersion', 'currentLocation.currentVersion', function () {\n      var installedVersion = this.get('currentLocation.installedVersion');\n      var currentVersion = this.get('currentLocation.currentVersion');\n\n      return !Ember['default'].isBlank(installedVersion) && semver['default'].lt(installedVersion, currentVersion);\n    }),\n\n    isBoss: Ember['default'].computed('localStorage.is_boss', function () {\n      return this.get('localStorage.is_boss') === 'true';\n    }),\n\n    flashVisible: false,\n    onboardingFlashVisible: false,\n    message: null,\n    type: null,\n\n    isTouchEnabled: Ember['default'].computed(function () {\n      return 'ontouchstart' in window || window.DocumentTouch !== undefined && document instanceof window.DocumentTouch;\n    }),\n\n    envoyIframeUrl: Ember['default'].computed.alias('envoyLoginUrl'),\n\n    envoyLoginUrl: Ember['default'].computed('session.data.authenticated.access_token', function () {\n      var accessToken = this.get('session.data.authenticated.access_token');\n\n      if (!Ember['default'].isBlank(accessToken)) {\n        return urlBuilder['default'].envoyLoginUrl(accessToken);\n      }\n    }).volatile(),\n\n    envoyLogoutUrl: Ember['default'].computed('session.data.authenticated.access_token', function () {\n      var accessToken = this.get('session.data.authenticated.access_token');\n      return urlBuilder['default'].envoyLogoutUrl(accessToken);\n    }).volatile(),\n\n    pubnub: Ember['default'].inject.service(),\n\n    actions: {\n      switchLocationFromMenu: function switchLocationFromMenu(menuItem) {\n        this.get('pubnub').unsubscribe({\n          channel: this.get('currentLocation.pubnubChannelEntry')\n        });\n        switch (this.get('currentRouteName')) {\n          case 'employee':\n            this.transitionToRoute('employees');\n            break;\n          case 'entry':\n            this.transitionToRoute('dashboard');\n            break;\n        }\n        var location = menuItem.get('location');\n        this.send('switchLocation', location);\n      },\n\n      switchLocation: function switchLocation(location) {\n        this.setProperties({\n          'currentLocation.content': location,\n          'location.model': location,\n          'localStorage.current_location': location.get('id')\n        });\n        return true;\n      },\n\n      addLocation: function addLocation() {\n        this.transitionToRoute('new-location');\n      },\n\n      dismissOldVersionBar: function dismissOldVersionBar() {\n        this.set('isNewVersionAvailable', false);\n      },\n\n      boss: function boss() {\n        this.send('redirectToBoss', '/dashboard');\n      }\n    }\n  });\n\n});","define('garaje/controllers/badge-enable', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    badge: Ember['default'].inject.controller(),\n\n    actions: {\n      enableBadgePrinting: function enableBadgePrinting() {\n        var previousTransition = this.get('badge').get('previousTransition');\n\n        var promise = this.get('currentLocation.printer').then(function (printer) {\n          printer.set('enabled', true);\n          if (!Ember['default'].isBlank(printer.get('ip'))) {\n            return printer.save();\n          }\n        });\n\n        var transitionPromise;\n\n        if (previousTransition) {\n          transitionPromise = previousTransition.retry();\n          promise.then(function () {\n            return transitionPromise;\n          });\n        } else {\n          transitionPromise = this.transitionToRoute('badge');\n          promise.then(function () {\n            return transitionPromise;\n          });\n        }\n\n        transitionPromise.then(function () {\n          Ember['default'].run.schedule('afterRender', function () {\n            Ember['default'].$('.js-enable-printer').click();\n          });\n        });\n      }\n    }\n  });\n\n});","define('garaje/controllers/badge', ['exports', 'ember', 'garaje/utils/flash-promise', 'garaje/config/environment', 'garaje/utils/url-builder', 'moment'], function (exports, Ember, flashPromise, environment, urlBuilder, moment) {\n\n  'use strict';\n\n  var _slice = Array.prototype.slice;\n  var escapeExpression = Ember['default'].Handlebars.Utils.escapeExpression;\n\n  exports['default'] = Ember['default'].Controller.extend({\n    plans: Ember['default'].inject.controller(),\n    premiumPlan: Ember['default'].computed.alias('plans.premiumPlan'),\n    currentPlan: Ember['default'].computed.alias('plans.currentPlan'),\n\n    previousTransition: null,\n\n    isCSSCustom: Ember['default'].computed('model.{defaultCSS,css', function () {\n      return this.get('model.defaultCSS') !== this.get('model.css');\n    }),\n\n    brandingOptions: [{ label: 'Logo', value: 'logo' }, { label: 'Company', value: 'name' }, { label: 'None', value: 'none' }],\n    photoOptions: [{ label: \"Display\", value: 'true' }, { label: \"Hide\", value: 'false' }],\n\n    customFields: Ember['default'].computed(function () {\n      var customFields = [{ label: 'None', value: 'none' }],\n          config = this.get('config');\n\n      if (config.get('hasEmail')) {\n        customFields.push({ label: 'Email', value: 'email' });\n      }\n      if (config.get('hasPhone')) {\n        customFields.push({ label: 'Phone', value: 'phone' });\n      }\n\n      var label;\n      var configCustomFields = config.get('customFields') || [];\n      configCustomFields.forEach(function (field) {\n        label = field.get('label');\n        customFields.push({ label: label, value: 'field ' + label });\n      });\n\n      return customFields;\n    }).volatile(),\n\n    customBadgeStyle: Ember['default'].computed('model.customBadge', function () {\n      var url = this.get('model.customBadge');\n      if (url) {\n        return 'background-image: url(\\'' + url + '\\');';\n      }\n    }),\n\n    badgeVariables: Ember['default'].computed('model.branding', 'model.css', 'model.customField1', 'model.customField2', 'model.customField1LabelEnabled', 'model.customField2LabelEnabled', 'model.photo', 'model.samplePhotoPath', 'model.customMessage', 'badgeFooter', 'currentAdmin.{name,email,phoneNumber}', 'currentLocation.companyName', 'currentLocation.logo.smallUrl', 'isNoNdaBadgeVisible', function () {\n      var css = this.get('model.css') || '';\n      return {\n        name: this.get('currentAdmin.name'),\n        dateTime: moment['default']().format('MMM D, YYYY · H:mm A'),\n        company: this.get('currentLocation.companyName'),\n        email: this.get('currentAdmin.email'),\n        phone: this.get('currentAdmin.phoneNumber'),\n        photoUrl: urlBuilder['default'].photoUrl(this.get('model.samplePhotoPath')),\n        logoUrl: this.get('currentLocation.logo.smallUrl') || '',\n        badgeHeaderContents: this.get('model.branding'),\n        badgeShowPhoto: this.get('model.photo'),\n        badgeExtraField1: this.get('model.customField1'),\n        badgeExtraField2: this.get('model.customField2'),\n        badgeExtraField1Label: this.get('model.customField1LabelEnabled'),\n        badgeExtraField2Label: this.get('model.customField2LabelEnabled'),\n        badgeFooter: this.get('badgeFooter'),\n        badgeNotes: this.get('model.customMessage'),\n        badgeCSS: css.replace(/(?:\\r\\n|\\r|\\n)+/g, ''),\n        ndaRejected: this.get('isNoNdaBadgeVisible') ? '1' : '0'\n      };\n    }),\n\n    inputCustomMessage: Ember['default'].computed('model.customMessage', {\n      get: function get() {\n        return this.get('model.customMessage');\n      },\n      set: function set(k, v) {\n        Ember['default'].run.debounce(this, 'set', 'model.customMessage', v, 500);\n        return v;\n      }\n    }),\n\n    badgeFooter: Ember['default'].computed('model.timeOfEntryEnabled', function () {\n      return this.get('model.timeOfEntryEnabled') ? 'time_of_entry' : 'none';\n    }),\n\n    stagingCSS: Ember['default'].computed('model.css', {\n      get: function get() {\n        return this.get('model.css') || '';\n      },\n      set: function set(k, v) {\n        Ember['default'].run.debounce(this, 'set', 'model.css', v, 500);\n        return v;\n      }\n    }),\n\n    isDirty: Ember['default'].computed.or('model.hasDirtyAttributes', 'printer.hasDirtyAttributes'),\n\n    previewHTML: Ember['default'].computed('model.previewHTML', 'badgeVariables', function () {\n      var previewHTML = this.get('model.previewHTML');\n      var variables = this.get('badgeVariables');\n      var variablesRegex = new RegExp('var (' + Object.keys(variables).join('|') + ') = (.+);', 'g');\n\n      var badgeCSS = variables['badgeCSS'];\n      delete variables['badgeCSS'];\n\n      var result = previewHTML.replace('<script src=\"jquery.min.js\"></script>', '<script src=\"https://code.jquery.com/jquery-1.10.1.min.js\"></script>').replace(/\\/assets\\/badge-fonts/, environment['default'].envoyHost + '/assets/badge-fonts').replace(/getURLParameter\\((badgeExtraField\\d)\\)/g, function () {\n        var placeholder = variables[arguments[1]] || '';\n        placeholder = placeholder.substr(6);\n        return '\"[' + placeholder + ']\"';\n      }).replace(variablesRegex, function () {\n        var varName = arguments[1];\n        return 'var ' + varName + ' = \"' + escapeExpression(variables[varName]) + '\";';\n      }).replace('var badgeCSS = \"\"', 'var badgeCSS = \"' + badgeCSS + '\"');\n\n      return result;\n    }),\n\n    isNoNdaBadgeVisible: false,\n\n    actions: {\n      // Workaround to get the actions to bubble up\n      // otherwise they won't\n      _hideFlash: function _hideFlash() {\n        this.send('hideFlash');\n      },\n      _showFlash: function _showFlash() {\n        var _arguments = _slice.call(arguments);\n\n        var type = _arguments[0];\n        var message = _arguments[1];\n\n        this.send('showFlash', type, message);\n      },\n      save: function save(callback) {\n        var promise = this.get('model').save();\n        if (callback) {\n          callback(promise);\n        }\n        flashPromise['default'](promise, this);\n      },\n\n      resetBadgeCSS: function resetBadgeCSS() {\n        if (window.confirm('Are you sure you want to reset the CSS?')) {\n          this.set('model.css', this.get('model.defaultCSS'));\n        }\n      },\n\n      saveBadgeCSS: function saveBadgeCSS(callback) {\n        var _this = this;\n\n        var promise = this.get('model').save().then(function () {\n          _this.set('isEditingBadgeCSS', false);\n        });\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      editBadgeCSS: function editBadgeCSS() {\n        this.set('isEditingBadgeCSS', true);\n      },\n\n      rollback: function rollback() {\n        this.get('model').rollbackAttributes();\n        this.get('printer').rollbackAttributes();\n      },\n\n      savePhotoBadge: function savePhotoBadge(selection) {\n        var _this2 = this;\n\n        if (selection === 'true') {\n          (function () {\n            var badge = _this2.get('model');\n            var config = _this2.get('config');\n            if (!config.get('hasPhotoPage')) {\n              if (window.confirm('Do you want to enable photos for all of your users?')) {\n                config.set('hasPhotoPage', true);\n                var promise = config.save().then(function () {\n                  return badge.save();\n                });\n                flashPromise['default'](promise, _this2);\n              } else {\n                badge.set('photo', 'false');\n              }\n            }\n          })();\n        }\n      }\n    }\n  });\n\n});","define('garaje/controllers/billing', ['exports', 'ember', 'garaje/utils/card-types', 'garaje/utils/flash-promise', 'garaje/utils/url-builder'], function (exports, Ember, cardTypes, flashPromise, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    subscribeController: Ember['default'].inject.controller('subscribe'),\n    // subscription is injected\n\n    messageBus: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n\n    company: Ember['default'].computed.alias('currentLocation.company.content'),\n\n    subscribe: Ember['default'].computed('model.plan', 'subscription.coupon', function () {\n      var controller = this.get('subscribeController');\n      controller.setProperties({\n        model: this.store.findRecord('plan', this.get('model.plan')),\n        coupon: this.get('subscription.coupon')\n      });\n      return controller;\n    }),\n\n    yearlySavings: Ember['default'].computed.alias('subscribe.yearlySavings'),\n\n    cardType: Ember['default'].computed('model.brand', function () {\n      return cardTypes['default'][this.get('model.brand')];\n    }),\n\n    ccIsValid: true,\n\n    payments: Ember['default'].computed({\n      get: function get() {\n        return this.fetchPayments();\n      },\n      set: function set(k, v) {\n        return v;\n      }\n    }),\n\n    fetchPayments: function fetchPayments() {\n      this.store.unloadAll('payment');\n      return this.store.findAll('payment');\n    },\n\n    actions: {\n      editCC: function editCC() {\n        this.set('isEditingCC', true);\n      },\n\n      saveCC: function saveCC(callback) {\n        this.get('messageBus').trigger('createStripeToken', callback);\n      },\n\n      saveCard: function saveCard() {\n        Ember['default'].$('.async-button:contains(Save)').click();\n      },\n\n      updateSubscription: function updateSubscription(callback, stripeToken) {\n        var _this = this;\n\n        var subscription = this.get('model');\n        subscription.set('stripeToken', stripeToken);\n\n        var promise = this.get('ajax').request(urlBuilder['default'].v1.subscriptionUrl(), {\n          type: 'PUT',\n          data: { subscription: subscription.serialize() }\n        }).then(function (payload) {\n          payload.subscription.id = 'me';\n          _this.store.pushPayload('subscription', payload);\n          // reload model to get out of delinquent state\n          var model = _this.store.peekRecord('subscription', 'me');\n          // reload payments to see latest payments after updating cc\n          var payments = _this.fetchPayments();\n          _this.setProperties({\n            model: model,\n            payments: payments,\n            isEditingCC: false\n          });\n        })['catch'](function (e) {\n          throw e;\n        })['finally'](function () {\n          subscription.set('stripeToken', null);\n        });\n\n        callback(promise);\n        flashPromise['default'](promise, this);\n      }\n    }\n  });\n\n});","define('garaje/controllers/dashboard', ['exports', 'ember', 'garaje/utils/flash-promise', 'ember-computed-change-gate/change-gate', 'npm:semver', 'garaje/utils/url-builder', 'moment'], function (exports, Ember, flashPromise, changeGate, semver, urlBuilder, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    queryParams: ['date', 'query'],\n\n    currentLocation: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n\n    date: Ember['default'].computed('selectedDate', {\n      get: function get() {\n        return this.get('selectedDate').format('YYYY-MM-DD');\n      },\n      set: function set(k, v) {\n        this.set('selectedDate', moment['default'](v, 'YYYY-MM-DD'));\n        return v;\n      }\n    }),\n\n    preRegistrationEnabled: Ember['default'].computed.alias('currentLocation.preRegistrationEnabled'),\n\n    canPrintBadges: Ember['default'].computed.and('currentLocation.printer.enabled', 'hasSendPrintBadgeVersion'),\n\n    hasSendPrintBadgeVersion: Ember['default'].computed('currentLocation.installedVersion', function () {\n      return semver['default'].valid(this.get('currentLocation.installedVersion')) && semver['default'].gte(this.get('currentLocation.installedVersion'), '1.3.0');\n    }),\n\n    ndaEnabled: Ember['default'].computed.alias('currentLocation.config.hasNdaPage'),\n\n    selectedDate: moment['default'](),\n\n    noHistoricVisitors: Ember['default'].computed.equal('model.entries.meta.all_total', 0),\n\n    isToday: Ember['default'].computed.equal('date', moment['default']().format('YYYY-MM-DD')),\n\n    isLoading: Ember['default'].computed.not('entriesSettled'),\n\n    showEntryFullDate: Ember['default'].computed.notEmpty('query'),\n\n    entriesSettled: false,\n\n    decoratorXhr: null,\n\n    mobileCalendarVisible: false,\n\n    currentMonthValue: Ember['default'].computed('date', function () {\n      return moment['default'](this.get('date')).month();\n    }),\n\n    currentMonth: changeGate['default']('currentMonthValue', function (value) {\n      return value;\n    }),\n\n    _kickCurrentMonthIntoGearForDecorators: Ember['default'].on('init', function () {\n      // FIX ME: currentMonth will not run even if date changes unless we initialize it\n      this.get('currentMonth');\n    }),\n\n    decorators: Ember['default'].computed('currentMonth', 'currentLocation.id', function () {\n      var decorators = [];\n      // var xhr = this.get('decoratorXhr');\n\n      //TODO-EMBER2-FIX\n      // if (xhr){\n      //   xhr.abort();\n      // }\n\n      //TODO-EMBER2-TEST\n      var getDecorators = this.get('ajax').request(urlBuilder['default'].v1.entriesCalendarUrl(this.get('currentLocation.id'), this.get('date'))).then(function (json) {\n        Ember['default'].run(function () {\n          decorators.addObjects(json.calendar);\n        });\n      });\n      this.set('decoratorXhr', getDecorators);\n\n      return decorators;\n    }),\n\n    datesWithEntries: Ember['default'].computed('decorators.[]', function () {\n      var decorators = this.get('decorators').filter(function (decorator) {\n        return decorator.entries > 0;\n      });\n      return decorators.map(function (decorator) {\n        var date = moment['default'](decorator.date);\n        return date;\n      });\n    }),\n\n    exportUrl: Ember['default'].computed('date', 'currentLocation.id', 'query', function () {\n      var date = this.get('date');\n      var location_id = this.get('currentLocation.id');\n      var query = this.get('query');\n      return urlBuilder['default'].exportEntriesUrl(location_id, date, query);\n    }),\n\n    actions: {\n      chooseToday: function chooseToday() {\n        this.set('query', '');\n        this.set('selectedDate', moment['default']());\n      },\n\n      goBack: function goBack() {\n        this.set('query', '');\n        this.get('selectedDate').subtract(1, 'day');\n        this.notifyPropertyChange('selectedDate');\n      },\n\n      goForward: function goForward() {\n        this.set('query', '');\n        this.get('selectedDate').add(1, 'day');\n        this.notifyPropertyChange('selectedDate');\n      },\n\n      signOut: function signOut(entry) {\n        entry.set('signOutTime', new Date());\n        flashPromise['default'](entry.save(), this);\n      },\n\n      toggleCalendarVisible: function toggleCalendarVisible() {\n        this.toggleProperty('mobileCalendarVisible');\n      }\n    }\n\n  });\n\n});","define('garaje/controllers/entry', ['exports', 'ember', 'garaje/utils/flash-promise', 'garaje/utils/mapped-field', 'garaje/utils/url-builder'], function (exports, Ember, flashPromise, MappedField, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    dashboard: Ember['default'].inject.controller(),\n    ajax: Ember['default'].inject.service(),\n\n    canPrintBadges: Ember['default'].computed.alias('dashboard.canPrintBadges'),\n\n    thumbnailPath: Ember['default'].computed('model.thumbnails.big', function () {\n      var bigThumbnail = this.get('model.thumbnails.big');\n      return bigThumbnail ? bigThumbnail : 'assets/images/features/avatar-placeholder.png';\n    }),\n\n    staticFields: Ember['default'].computed('model.userData.[]', 'currentLocation.config.emailRequired', 'currentLocation.config.phoneRequired', 'currentLocation.device.localizedFields', function () {\n      var staticFields = [];\n\n      var fullNameObject = MappedField['default'].create({\n        fieldData: this.get('model.userData').findBy('field', 'Your Full Name'),\n        isRequired: true\n      });\n      if (this.get('currentLocation.config.localizedFields')) {\n        fullNameObject.fieldData.set('field', this.get('currentLocation.config.localizedFields').findBy('field', 'Your Full Name').get('localized'));\n      }\n      staticFields.pushObject(fullNameObject);\n\n      var emailAddress = this.get('model.userData').findBy('field', 'Your Email Address');\n      var phoneNumber = this.get('model.userData').findBy('field', 'Your Phone Number');\n\n      if (emailAddress) {\n        var decoratedEmail = MappedField['default'].create({\n          fieldData: emailAddress,\n          isRequired: this.get('currentLocation.config.emailRequired')\n        });\n        if (this.get('currentLocation.config.localizedFields')) {\n          decoratedEmail.fieldData.set('field', this.get('currentLocation.config.localizedFields').findBy('field', 'Your Email Address').get('localized'));\n        }\n        staticFields.pushObject(decoratedEmail);\n      }\n\n      if (phoneNumber) {\n        var decoratedPhone = MappedField['default'].create({\n          fieldData: phoneNumber,\n          isRequired: this.get('currentLocation.config.phoneRequired')\n        });\n        if (this.get('currentLocation.config.localizedFields')) {\n          decoratedPhone.fieldData.set('field', this.get('currentLocation.config.localizedFields').findBy('field', 'Your Phone Number').get('localized'));\n        }\n        staticFields.pushObject(decoratedPhone);\n      }\n\n      return staticFields;\n    }),\n\n    mappedFields: Ember['default'].computed('model.userData.[]', 'currentLocation.config.customFields.[]', 'staticFields.[]', function () {\n      var self = this;\n      var mappedCustomFields = [];\n      var staticFields = this.get('staticFields');\n      var customFields = this.get('currentLocation.config.customFields');\n\n      if (customFields) {\n        this.get('model.userData').forEach(function (datum) {\n          var match = customFields.findBy('label', datum.get('field'));\n          var matchIndex = customFields.indexOf(match);\n          if (match && match.get('dropdown')) {\n            var matchOptions = match.get('options');\n            if (!matchOptions.findBy('value', datum.get('value'))) {\n              var newOption = self.store.createFragment('dropdownOption', { value: datum.get('value') });\n              matchOptions.pushObject(newOption);\n            }\n            var decoratedDropdown = MappedField['default'].create({\n              fieldData: datum,\n              options: matchOptions,\n              isRequired: match.get('required'),\n              isDropdown: true\n            });\n            mappedCustomFields.splice(matchIndex, 0, decoratedDropdown);\n          } else if (match) {\n            var decoratedDatum = MappedField['default'].create({\n              fieldData: datum,\n              isRequired: match.get('required'),\n              hasTypeHost: match.get('type') === 'host_notification'\n            });\n            mappedCustomFields.splice(matchIndex, 0, decoratedDatum);\n          } else if (!staticFields.findBy('field', datum.get('field'))) {\n            var wrappedDatum = MappedField['default'].create({ fieldData: datum });\n            mappedCustomFields.pushObject(wrappedDatum);\n          }\n        });\n      }\n      return staticFields.concat(mappedCustomFields);\n    }),\n\n    hasEmptyRequiredFields: Ember['default'].computed('mappedFields.@each.isEmptyAndRequired', function () {\n      return this.get('mappedFields').isAny('isEmptyAndRequired');\n    }),\n\n    actions: {\n      save: function save(callback) {\n        var promise = this.get('model').save();\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n      'delete': function _delete() {\n        var self = this;\n        var dateForDashboard = moment(this.get('model.signInTime')).format('YYYY-MM-DD');\n        if (window.confirm('Are you sure you want to delete this entry? This cannot be undone.')) {\n          var destroy = this.get('model').destroyRecord().then(function () {\n            return self.transitionToRoute('dashboard', { queryParams: { date: dateForDashboard } });\n          })['catch'](function (reason) {\n            if (reason.message !== 'TransitionAborted') {\n              throw reason;\n            }\n          });\n          flashPromise['default'](destroy, this);\n        }\n      },\n      reprintBadge: function reprintBadge(callback) {\n        var promise = this.get('ajax').request(urlBuilder['default'].v1.reprintBadgeUrl(this.get('model.id')), { type: 'POST' });\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n      signOut: function signOut(time) {\n        var self = this;\n        var signInDateFormatted = moment(this.get('model.signInTime')).format('YYYY-MM-DD');\n        var signOutTime = time ? moment(signInDateFormatted + ' ' + time, 'YYYY-MM-DD h:mm a').toDate() : new Date();\n\n        this.set('model.signOutTime', signOutTime);\n        var promise = this.get('model').save().then(function () {\n          return self.transitionToRoute('dashboard', { queryParams: { date: signInDateFormatted } });\n        })['catch'](function (reason) {\n          if (reason.message !== 'TransitionAborted') {\n            throw reason;\n          }\n        });\n        flashPromise['default'](promise, this);\n      },\n      searchEmployees: function searchEmployees(query, deferred) {\n        if (Ember['default'].isBlank(query.term)) {\n          deferred.resolve([]);\n        } else {\n          this.store.query('employee', {\n            name: query.term,\n            location_id: this.get('currentLocation.id')\n          }).then(deferred.resolve, deferred.reject);\n        }\n      }\n    }\n  });\n\n});","define('garaje/controllers/ipad', ['exports', 'ember', 'garaje/utils/toggleable', 'garaje/config/environment', 'garaje/utils/flash-promise', 'garaje/utils/oauth', 'garaje/utils/url-builder', 'moment', 'garaje/mixins/welcome-image-handlers', 'garaje/mixins/slideshow-handlers'], function (exports, Ember, toggleable, config, flashPromise, oauth, urlBuilder, moment, WelcomeImageHandlers, SlideshowHandlers) {\n\n  'use strict';\n\n  var _slice = Array.prototype.slice;\n  var escapeExpression = Ember['default'].Handlebars.Utils.escapeExpression;\n\n  // subscription service\n\n  exports['default'] = Ember['default'].Controller.extend(WelcomeImageHandlers['default'], SlideshowHandlers['default'], {\n    ajax: Ember['default'].inject.service(),\n\n    beenHereBefore: toggleable['default']('beenHereBefore'),\n    selfSignOut: toggleable['default']('selfSignOut'),\n    hasNdaPage: toggleable['default']('hasNdaPage'),\n    ndaOptional: toggleable['default']('ndaOptional'),\n    hasMultipleNda: toggleable['default']('hasMultipleNda'),\n    slideshows: Ember['default'].computed.alias('model.slideshows'),\n    config: Ember['default'].computed.alias('model'),\n\n    hasPhotoPage: Ember['default'].computed('model.hasPhotoPage', {\n      get: function get() {\n        return this.get('model.hasPhotoPage');\n      },\n      set: function set(k, v) {\n        var _this = this;\n\n        var record = this.get('model');\n        record.rollbackAttributes();\n        record.set('hasPhotoPage', v);\n        var promise = record.save();\n\n        //here if we disable photos for everyone, we auto-hide the photo option on badges\n        if (!v) {\n          promise.then(function () {\n            return _this.get('currentLocation.badge').then(function (result) {\n              if (result.get('photo').toString() === 'true') {\n                result.set('photo', 'false');\n                return result.save();\n              }\n            });\n          });\n        }\n\n        flashPromise['default'](promise, this);\n        return v;\n      }\n    }),\n\n    hasEmailOrPhone: Ember['default'].computed.or('model.hasEmail', 'model.hasPhone'),\n\n    hasEmailXorPhone: Ember['default'].computed('model.hasEmail', 'model.hasPhone', function () {\n      var hasEmail = this.get('model.hasEmail');\n      var hasPhone = this.get('model.hasPhone');\n      return hasEmail && !hasPhone || !hasEmail && hasPhone;\n    }),\n\n    isEmailOrPhoneRemovable: Ember['default'].computed('model.beenHereBefore', 'hasEmailXorPhone', function () {\n      return !(this.get('model.beenHereBefore') && this.get('hasEmailXorPhone'));\n    }),\n\n    isBeenHereBeforeDisabled: Ember['default'].computed('model.isSaving', 'hasEmailOrPhone', function () {\n      return this.get('model.isSaving') || !this.get('hasEmailOrPhone');\n    }),\n\n    expandedWelcomeReferral: false,\n\n    recalculateDragContainer: false,\n\n    isEditingNDA: true,\n\n    boxClientId: config['default'].boxClientId,\n\n    accentColor: Ember['default'].computed('currentLocation.color', function () {\n      return 'background-color:' + this.get('currentLocation.color');\n    }),\n\n    localizedFullName: Ember['default'].computed('model.localizedFields', function () {\n      if (this.get('model.localizedFields')) {\n        return this.get('model.localizedFields').findBy('field', 'Your Full Name').get('localized');\n      }\n      return 'Your Full Name';\n    }),\n\n    localizedEmailAddress: Ember['default'].computed('model.localizedFields', function () {\n      if (this.get('model.localizedFields')) {\n        return this.get('model.localizedFields').findBy('field', 'Your Email Address').get('localized');\n      }\n      return 'Your Email Address';\n    }),\n\n    localizedPhoneNumber: Ember['default'].computed('model.localizedFields', function () {\n      if (this.get('model.localizedFields')) {\n        return this.get('model.localizedFields').findBy('field', 'Your Phone Number').get('localized');\n      }\n      return 'Your Phone Number';\n    }),\n\n    hasNdas: Ember['default'].computed.gt('model.ndas.length', 0),\n\n    // to handle initial value where the data\n    // comes in without nda bcc email, and no\n    // nda bcc enabled\n    ndaBccEnabled: Ember['default'].computed('model.ndaBccEnabled', 'model.ndaBccEmail', {\n      get: function get() {\n        return this.get('model.ndaBccEnabled') && !Ember['default'].isBlank(this.get('model.ndaBccEmail'));\n      },\n      set: function set(k, v) {\n        this.set('model.ndaBccEnabled', v);\n        return v;\n      }\n    }),\n\n    boxFolderName: Ember['default'].computed('currentLocation.config.hasBoxIntegration', {\n      get: function get() {\n        var integration = this.get('currentLocation.config.hasBoxIntegration');\n        if (integration) {\n          return integration.get('folderName');\n        }\n      },\n      set: function set(k, v) {\n        return v;\n      }\n    }),\n\n    isNdaTextChanged: Ember['default'].computed('model.ndaText', function () {\n      var isChanged = ('ndaText' in this.get('model').changedAttributes());\n      this.set('model.ndaRequireResign', isChanged);\n      return isChanged;\n    }),\n\n    currentDeliveryPerson: null,\n\n    // FIX ME!!!\n    isDirty: Ember['default'].computed(function () {\n      return this.get('model.hasDirtyAttributes') || this.get('currentDeliveryPerson.id') !== this.get('model.deliveryPerson.id');\n    }).volatile(),\n\n    employees: Ember['default'].computed('currentLocation.id', function () {\n      return this.store.query('employee', {\n        limit: 1,\n        location_id: this.get('currentLocation.id')\n      });\n    }),\n\n    modelIsDirty: Ember['default'].computed.alias('model.hasDirtyAttributes'),\n\n    deliveryHasChanged: Ember['default'].computed('currentDeliveryPerson.id', 'model.deliveryPerson.id', function () {\n      return this.get('currentDeliveryPerson.id') !== this.get('model.deliveryPerson.id');\n    }),\n\n    doesNotHaveNotification: Ember['default'].computed.not('model.location.hasNotificationEnabled'),\n    doesNotHaveEmployees: Ember['default'].computed.equal('employees.length', 0),\n    hasUnmetPreconditions: Ember['default'].computed.or('doesNotHaveNotification', 'doesNotHaveEmployees'),\n\n    variables: Ember['default'].computed('model.hasEmail', 'model.hasPhone', 'model.customFields.@each.label', function () {\n      var variables = ['date', 'company', 'name'];\n\n      if (this.get('model.hasEmail')) {\n        variables.push('email');\n      }\n\n      if (this.get('model.hasPhone')) {\n        variables.push('phone');\n      }\n\n      if (this.get('model.customFields')) {\n        this.get('model.customFields').map(function (field) {\n          variables.push('field ' + field.get('label'));\n        });\n      }\n\n      return variables.map(function (v) {\n        return '::' + v.toUpperCase() + '::';\n      });\n    }),\n\n    ndaTextFormatted: null,\n\n    today: moment['default']().format('MMMM Do, YYYY'),\n\n    setIpadField: function setIpadField(field, val) {\n      this.set(field, val);\n      this.send('recalculateDraggableContainer');\n    },\n\n    isEditingWelcomeImage: false,\n\n    isEditingDeliveries: false,\n\n    isEditingEmail: false,\n\n    actions: {\n      _hideFlash: function _hideFlash() {\n        this.send('hideFlash');\n      },\n      _showFlash: function _showFlash() {\n        var _arguments = _slice.call(arguments);\n\n        var type = _arguments[0];\n        var message = _arguments[1];\n\n        this.send('showFlash', type, message);\n      },\n\n      disableNdaBcc: function disableNdaBcc(callback) {\n        var _this2 = this;\n\n        this.set('ndaBccEnabled', false);\n        var promise = this.get('model').save().then(function () {\n          _this2.set('isEditingEmail', false);\n        });\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      enableNdaBcc: function enableNdaBcc(callback) {\n        this.set('ndaBccEnabled', true);\n        callback(this.get('model').save());\n      },\n\n      addNda: function addNda() {\n        var attributes = { isEditing: true, isNewFragment: true };\n        if (!this.get('hasNdas')) {\n          attributes.name = 'All Visitors';\n        }\n        var nda = this.store.createFragment('nda', attributes);\n        var ndas = this.get('model.ndas');\n        if (ndas) {\n          ndas.pushObject(nda);\n        } else {\n          this.set('model.ndas', [nda]);\n        }\n      },\n\n      reorderCustomFields: function reorderCustomFields(customFields) {\n        this.get('model').set('customFields', customFields);\n      },\n\n      addCustomField: function addCustomField(menuItem) {\n        var field = this.store.createFragment('customField', {\n          dropdown: menuItem.get('type') === 'dropdown',\n          options: []\n        });\n        var customFields = this.get('model.customFields');\n        if (customFields) {\n          customFields.pushObject(field);\n        } else {\n          this.set('model.customFields', [field]);\n        }\n      },\n\n      save: function save(callback) {\n        var _this3 = this;\n\n        this.setProperties({\n          'model.ndaBccEnabled': !Ember['default'].isBlank(this.get('model.ndaBccEmail')),\n          'model.acceptDeliveries': !Ember['default'].isBlank(this.get('model.deliveryPerson.id'))\n        });\n        var promise = this.get('model').save().then(function () {\n          _this3.setProperties({\n            isEditingEmail: false,\n            isEditingDeliveries: false,\n            isEditingBox: false,\n            currentDeliveryPerson: _this3.get('model.deliveryPerson')\n          });\n          Ember['default'].makeArray(_this3.get('model.ndas')).forEach(function (nda) {\n            nda.setProperties({\n              isEditing: false,\n              isNewFragment: false\n            });\n          });\n        });\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      editEmail: function editEmail() {\n        this.set('isEditingEmail', true);\n      },\n\n      enableBox: function enableBox() {\n        var _this4 = this;\n\n        oauth['default'](urlBuilder['default'].boxAuthUrl(), 750, 750).then(function (data) {\n          _this4.setProperties({\n            boxAccessGrantId: data.box_access_grant_id,\n            isEditingBox: true\n          });\n        });\n      },\n\n      disableBox: function disableBox() {\n        var _this5 = this;\n\n        var device_id = this.get('currentLocation.config.id');\n\n        var promise = this.get('ajax').request(urlBuilder['default'].v1.boxUrl(device_id), {\n          type: 'DELETE',\n          headers: {\n            'Accept': 'application/json; charset=utf-8'\n          }\n        }).then(function () {\n          _this5.setProperties({\n            boxFolderId: null,\n            boxAccessGrantId: null,\n            boxFolderName: null,\n            isEditingBox: false\n          });\n        });\n\n        flashPromise['default'](promise, this);\n      },\n\n      pickedFolder: function pickedFolder(pickedObject) {\n        var _this6 = this;\n\n        var device_id = this.get('currentLocation.config.id');\n\n        var type, data;\n\n        if (this.get('currentLocation.config.hasBoxIntegration')) {\n          type = 'PUT';\n          data = { folder_id: pickedObject.id };\n        } else {\n          type = 'POST';\n          data = {\n            folder_id: pickedObject.id,\n            grant_id: this.get('boxAccessGrantId'),\n            folder_name: pickedObject.name\n          };\n        }\n\n        var promise = this.get('ajax').request(urlBuilder['default'].v1.boxUrl(device_id), {\n          type: type,\n          data: data,\n          headers: {\n            'Accept': 'application/json; charset=utf-8'\n          }\n        }).then(function () {\n          _this6.setProperties({\n            boxFolderId: pickedObject.id,\n            boxFolderName: pickedObject.name\n          });\n        });\n\n        flashPromise['default'](promise, this);\n      },\n\n      editBox: function editBox() {\n        this.set('isEditingBox', true);\n      },\n\n      addEmailField: function addEmailField() {\n        this.setIpadField('model.hasEmail', true);\n      },\n\n      deleteEmailField: function deleteEmailField() {\n        this.setIpadField('model.hasEmail', false);\n      },\n\n      addPhoneField: function addPhoneField() {\n        this.setIpadField('model.hasPhone', true);\n      },\n\n      deletePhoneField: function deletePhoneField() {\n        this.setIpadField('model.hasPhone', false);\n      },\n\n      editDeliveries: function editDeliveries() {\n        this.set('isEditingDeliveries', true);\n      },\n\n      disableDeliveries: function disableDeliveries(callback) {\n        this.set('model.acceptDeliveries', false);\n        var self = this;\n        var promise = this.get('model').save().then(function () {\n          self.set('isEditingDeliveries', false);\n        });\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      enableDeliveries: function enableDeliveries(callback) {\n        this.set('model.acceptDeliveries', true);\n        var promise = this.get('model').save();\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      rollback: function rollback() {\n        this.get('model').rollbackAttributes();\n        this.set('model.deliveryPerson', this.get('currentDeliveryPerson'));\n      },\n\n      searchEmployees: function searchEmployees(query, deferred) {\n        if (Ember['default'].isBlank(query.term)) {\n          deferred.resolve([]);\n        } else {\n          this.store.query('employee', {\n            name: query.term,\n            location_id: this.get('currentLocation.id')\n          }).then(deferred.resolve, deferred.reject);\n        }\n      },\n\n      toggleRecalculateContainer: function toggleRecalculateContainer() {\n        this.toggleProperty('recalculateDragContainer');\n      },\n\n      setNDAPreviewActive: function setNDAPreviewActive() {\n        this.set('isEditingNDA', false);\n        this.send('formatNDAText');\n      },\n\n      setNDAEditActive: function setNDAEditActive() {\n        this.set('isEditingNDA', true);\n      },\n\n      formatNDAText: function formatNDAText() {\n        var companyName = this.get('currentLocation.companyName');\n        var date = this.get('today');\n\n        var formattedText = escapeExpression(this.get('model.ndaText')).replace(/\\r?\\n/g, '<br>').replace(/__([A-Z\\ ]+)__/g, '__::\\$1::__').replace(/::DATE::/g, date).replace(/::COMPANY::/g, escapeExpression(companyName)).replace(/::FIELD([A-Z\\ ]+)::/g, 'Visitor:\\$1').replace(/::([A-Z\\ ]+)::/g, 'Visitor:\\$1').replace(/__(.*?)__/g, '<strong>\\$1</strong>');\n\n        this.set('ndaTextFormatted', Ember['default'].String.htmlSafe(formattedText));\n      },\n\n      recalculateDraggableContainer: function recalculateDraggableContainer() {\n        var parent = Ember['default'].$('.fieldSorter');\n        parent.removeAttr('style');\n\n        Ember['default'].run(function () {\n          var originalHeight = parent.height() + 80;\n          parent.css('height', originalHeight);\n        });\n      }\n    }\n  });\n\n});","define('garaje/controllers/location', ['exports', 'ember', 'garaje/mixins/multi-location-helpers', 'garaje/mixins/company-logo-handlers', 'garaje/utils/flash-promise', 'npm:semver', 'garaje/utils/url-builder'], function (exports, Ember, MultiLocationHelpers, CompanyLogoHandlers, flashPromise, semver, urlBuilder) {\n\n  'use strict';\n\n  var _slice = Array.prototype.slice;\n  exports['default'] = Ember['default'].Controller.extend(MultiLocationHelpers['default'], CompanyLogoHandlers['default'], {\n    location: Ember['default'].computed.alias('model'),\n\n    plans: Ember['default'].inject.controller(),\n    ajax: Ember['default'].inject.service(),\n\n    flashPromise: flashPromise['default'],\n\n    canActivateLocation: Ember['default'].computed.or('subscription.canHaveMultipleLocations', 'hasSufficientCredits'),\n\n    hasSufficientCredits: Ember['default'].computed.not('hasInsufficientCredits'),\n\n    exportUrl: Ember['default'].computed('model.id', function () {\n      return urlBuilder['default'].exportEntriesUrl(this.get('model.id'));\n    }),\n\n    hasLocalizationVersion: Ember['default'].computed('model.installedVersion', function () {\n      return semver['default'].valid(this.get('model.installedVersion')) && semver['default'].gte(this.get('model.installedVersion'), '1.3.0');\n    }),\n\n    isColorChanged: Ember['default'].computed('color', function () {\n      return 'color' in this.get('content.content').changedAttributes();\n    }),\n\n    activeAndCurrentLocations: Ember['default'].computed('locations.active.[]', 'currentLocation', function () {\n      return this.get('locations.active').concat(this.get('currentLocation'));\n    }),\n\n    inputAddress: null,\n\n    apiKeyCallback: null,\n\n    actions: {\n      _hideFlash: function _hideFlash() {\n        this.send('hideFlash');\n      },\n      _showFlash: function _showFlash() {\n        var _arguments = _slice.call(arguments);\n\n        var type = _arguments[0];\n        var message = _arguments[1];\n\n        this.send('showFlash', type, message);\n      },\n      enable: function enable(callback) {\n        var subscription = this.get('subscription.content');\n        var promise;\n\n        if (this.get('hasInsufficientCredits')) {\n          var self = this;\n          var subscriptionData = {};\n\n          if (this.get('isUpgradeRequired')) {\n            Ember['default'].merge(subscriptionData, {\n              plan: this.get('multiLocationPlan.id'),\n              period: subscription.get('period')\n            });\n            subscription.setProperties(subscriptionData);\n          }\n\n          promise = this.get('ajax').request(urlBuilder['default'].v1.subscriptionUrl(), {\n            type: 'PUT',\n            data: {\n              subscription: Ember['default'].merge(subscriptionData, {\n                quantity: this.get('locations.active.length') + 1\n              })\n            }\n          }).then(function (payload) {\n            payload.subscription.id = 'me';\n            self.store.pushPayload('subscription', payload);\n          })['catch'](function (e) {\n            subscription.rollbackAttributes();\n            throw e;\n          });\n        } else {\n          promise = Ember['default'].RSVP.resolve();\n        }\n\n        var model = this.get('model');\n        promise.then(function () {\n          model.set('disabled', false);\n          return model.save();\n        });\n\n        callback(promise);\n        this.get('flashPromise')(promise, this);\n      },\n\n      disable: function disable() {\n        if (window.confirm('Are you sure you want to deactivate this location? All iPads at this location will be logged out.')) {\n          var model = this.get('model');\n          model.set('disabled', true);\n          this.get('flashPromise')(model.save(), this);\n        }\n      },\n\n      save: function save(callback) {\n        var self = this;\n        var promise = Ember['default'].RSVP.all([this.get('model').save(), this.get('model.company.content').save()]); // company here is a PromiseObject. content is the actual company model.\n\n        promise.then(function () {\n          self.set('inputAddress', self.get('model.address'));\n        });\n\n        this.get('flashPromise')(promise, this);\n        callback(promise);\n\n        return promise;\n      },\n\n      setColor: function setColor() {\n        if (this.get('isColorChanged')) {\n          this.get('flashPromise')(this.get('model').save(), this);\n        }\n      },\n\n      regenerateApiKey: function regenerateApiKey() {\n        if (window.confirm('Are you sure you want to regenerate the API key? Existing API clients will unable to access Envoy.')) {\n          this.set('apiKeyCallback', this.get('model').generateApiKey());\n        }\n      },\n\n      selectPlan: function selectPlan(plan, period) {\n        var params = { queryParams: { plan: plan, period: period } };\n        this.transitionToRoute('subscribe', params);\n      },\n\n      _goToAnchor: function _goToAnchor(route, anchor) {\n        this.send('goToAnchor', route, anchor);\n      }\n    }\n  });\n\n});","define('garaje/controllers/login', ['exports', 'ember', 'garaje/utils/flash'], function (exports, Ember, flash) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    session: Ember['default'].inject.service(),\n    actions: {\n      authenticate: function authenticate(callback) {\n        var self = this;\n        var credentials = this.getProperties('identification', 'password');\n\n        this.get('session').authenticate('authenticator:application', credentials)['catch'](function () {\n          flash['default'].call(self, 'error', 'Email and password do not match');\n          self.set('password', null);\n          Ember['default'].$('.js-password').focus();\n          callback(Ember['default'].RSVP.reject());\n        });\n      },\n\n      showFlash: function showFlash(type, message) {\n        this.setProperties({\n          type: type,\n          message: message,\n          flashVisible: true\n        });\n      },\n\n      hideFlash: function hideFlash() {\n        this.set('flashVisible', false);\n      }\n    }\n  });\n\n});","define('garaje/controllers/new-location', ['exports', 'ember', 'garaje/mixins/multi-location-helpers', 'garaje/utils/flash-promise', 'ember-validations', 'garaje/utils/url-builder'], function (exports, Ember, MultiLocationHelpers, flashPromise, Validations, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend(Validations['default'], MultiLocationHelpers['default'], {\n    application: Ember['default'].inject.controller(),\n    locations: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n\n    validations: {\n      'admin.name': { presence: true },\n      'admin.email': {\n        presence: true,\n        email: true\n      },\n      'admin.password': {\n        presence: true,\n        length: {\n          minimum: 8,\n          maximum: 128,\n          allowBlank: true // so that we don't get multiple validation errors \"can't be blank and is too short\"\n        }\n      }\n    },\n\n    shouldValidate: false,\n\n    admin: Ember['default'].computed.alias('model.newAdmin'),\n\n    activeAndNewLocations: Ember['default'].computed.filterBy('locations.content', 'disabled', false),\n\n    addressErrorMessage: Ember['default'].computed('validated', 'errors.inputAddress', 'inputAddressErrorMessage', function () {\n      var errors = this.get('errors.inputAddress');\n      if (this.get('validated') && !Ember['default'].isEmpty(errors)) {\n        return 'Address ' + errors;\n      } else {\n        return this.get('inputAddressErrorMessage');\n      }\n    }),\n\n    actions: {\n      triggerAddressValidations: function triggerAddressValidations(callback) {\n        this.setProperties({\n          shouldValidate: true,\n          callback: callback\n        });\n      },\n\n      save: function save() {\n        var _this = this;\n\n        this.set('validated', true);\n\n        var callback = this.get('callback');\n\n        var promise = this.validate()['catch'](function () {\n          return Ember['default'].RSVP.reject('Some fields are incomplete');\n        }).then(function () {\n          var subscription = _this.get('subscription.content');\n\n          if (_this.get('hasInsufficientCredits')) {\n            var subscriptionData = {};\n\n            if (_this.get('isUpgradeRequired')) {\n              Ember['default'].merge(subscriptionData, {\n                plan: _this.get('multiLocationPlan.id'),\n                period: subscription.get('period')\n              });\n              subscription.setProperties(subscriptionData);\n            }\n\n            return _this.get('ajax').request(urlBuilder['default'].v1.subscriptionUrl(), {\n              type: 'PUT',\n              data: {\n                subscription: Ember['default'].merge(subscriptionData, {\n                  quantity: _this.get('locations.active.length') + 1\n                })\n              }\n            }).then(function (payload) {\n              payload.subscription.id = 'me';\n              _this.store.pushPayload('subscription', payload);\n            })['catch'](function (e) {\n              subscription.rollbackAttributes();\n              throw e;\n            });\n          }\n        }).then(function () {\n          return _this.get('model').save().then(function (location) {\n            _this.transitionToRoute('location').then(function () {\n              var controller = _this.get('application');\n              controller.send('switchLocation', location);\n            });\n          });\n        });\n\n        callback(promise);\n        flashPromise['default'](promise, this);\n      }\n    }\n  });\n\n});","define('garaje/controllers/notifications', ['exports', 'ember', 'garaje/utils/toggleable', 'garaje/utils/flash-promise', 'ember-validations', 'garaje/config/environment'], function (exports, Ember, toggleable, flashPromise, Validations, config) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend(Validations['default'], {\n    emailNotificationEnabled: toggleable['default']('emailNotificationEnabled'),\n    smsNotificationEnabled: toggleable['default']('smsNotificationEnabled'),\n\n    hasNotificationDisabled: Ember['default'].computed.not('model.hasNotificationEnabled'), // hasNotificationEnabled is from models/location\n    hasNoNotifications: Ember['default'].computed.and('hasNotificationDisabled', 'showBlankState'),\n\n    hasNoEmployees: Ember['default'].computed.equal('employees.meta.total', 0),\n\n    watchlistContent: Ember['default'].computed.alias('currentLocation.watchlist.list'),\n    watchlistNotifyEmail: Ember['default'].computed.alias('currentLocation.watchlist.notifyEmail'),\n    watchlistNotifyPhoneNumber: Ember['default'].computed.alias('currentLocation.watchlist.notifyPhoneNumber'),\n    isEditingWatchlist: false,\n    isWatchlistEditableAndFulfilled: Ember['default'].computed.bool('currentLocation.watchlist.list'),\n\n    defaultCountry: config['default'].defaultCountry,\n\n    validations: {\n      'watchlistNotifyEmail': { email: true },\n      'watchlistNotifyPhoneNumber': {\n        phoneNumber: '.js-watchlist-phone-number'\n      }\n    },\n\n    actions: {\n      scrollToVisitorInformation: function scrollToVisitorInformation() {\n        this.transitionToRoute('ipad').then(function () {\n          setTimeout(function () {\n            Ember['default'].$.scrollTo('.js-visitor-information', 200);\n          }, 500);\n        });\n      },\n\n      enable: function enable() {\n        this.set('showBlankState', false);\n      },\n\n      rollbackWatchlist: function rollbackWatchlist() {\n        var location = this.get('currentLocation');\n        location.rollbackAttributes();\n      },\n\n      editWatchlist: function editWatchlist() {\n        this.set('isEditingWatchlist', true);\n      },\n\n      saveWatchlist: function saveWatchlist(callback) {\n        var _this = this;\n\n        var location = this.get('currentLocation');\n        this.set('validated', true);\n\n        var promise = this.validate()['catch'](function () {\n          throw 'Please correct the form errors.';\n        }).then(function () {\n          var savePromise = location.save().then(function (data) {\n            _this.set('isEditingWatchlist', false);\n            return data;\n          });\n          return savePromise;\n        });\n\n        callback(promise);\n        flashPromise['default'](promise, this);\n      }\n    }\n  });\n\n});","define('garaje/controllers/plans', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    locations: Ember['default'].inject.service(),\n\n    numberOfActiveLocations: Ember['default'].computed('locations.active.[]', function () {\n      return this.get('locations.active.length');\n    }),\n\n    isSubscribed: Ember['default'].computed.alias('subscription.isSubscribed'),\n\n    currentPlan: Ember['default'].computed('isSubscribed', 'subscription', function () {\n      if (this.get('isSubscribed')) {\n        return this.get('subscription');\n      }\n    }),\n\n    standardPlan: Ember['default'].computed(function () {\n      return this.store.findRecord('plan', 'standard');\n    }),\n\n    premiumPlan: Ember['default'].computed(function () {\n      return this.store.findRecord('plan', 'premium');\n    }),\n\n    enterprisePlan: Ember['default'].computed(function () {\n      return this.store.findRecord('plan', 'enterprise');\n    }),\n\n    actions: {\n      selectPlan: function selectPlan(plan, period) {\n        if (plan && period) {\n          this.transitionToRoute('subscribe', {\n            queryParams: {\n              plan: plan,\n              period: period\n            }\n          });\n        } else {\n          this.send('redirectToEnvoy', '/contact');\n        }\n      }\n    }\n  });\n\n});","define('garaje/controllers/pre-registered', ['exports', 'ember', 'garaje/utils/flash-promise', 'npm:semver', 'ember-computed-change-gate/change-gate', 'garaje/utils/url-builder', 'moment'], function (exports, Ember, flashPromise, semver, changeGate, urlBuilder, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    queryParams: ['date', 'query'],\n\n    currentLocation: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n\n    date: Ember['default'].computed('selectedDate', {\n      get: function get() {\n        return this.get('selectedDate').format('YYYY-MM-DD');\n      },\n      set: function set(k, v) {\n        this.set('selectedDate', moment['default'](v, 'YYYY-MM-DD'));\n        return v;\n      }\n    }),\n\n    preRegistrationEnabled: Ember['default'].computed.alias('currentLocation.preRegistrationEnabled'),\n\n    selectedDate: moment['default'](),\n\n    isToday: Ember['default'].computed.equal('date', moment['default']().format('YYYY-MM-DD')),\n\n    canPrintBadges: Ember['default'].computed.and('currentLocation.printer.enabled', 'hasSendPrintBadgeVersion'),\n\n    hasSendPrintBadgeVersion: Ember['default'].computed('currentLocation.installedVersion', function () {\n      return semver['default'].valid(this.get('currentLocation.installedVersion')) && semver['default'].gte(this.get('currentLocation.installedVersion'), '1.3.0');\n    }),\n\n    invitesSelectedToPrint: Ember['default'].computed.filterBy('model.invites', 'isSelected', true),\n\n    invitesNotFulfilled: Ember['default'].computed.filter('model.invites', function (invite) {\n      return Ember['default'].isBlank(invite.get('entry.signInTime'));\n    }),\n\n    isSelectingPrint: Ember['default'].computed.alias('invitesSelectedToPrint.length'),\n\n    invitesSortingDesc: ['expectedArrivalTime'],\n    sortedInvites: Ember['default'].computed.sort('model.invites', 'invitesSortingDesc'),\n\n    allInvitesAreSelected: Ember['default'].computed('invitesSelectedToPrint.[]', 'invitesNotFulfilled.[]', function () {\n      return this.get('isSelectingPrint') === this.get('invitesNotFulfilled.length');\n    }),\n\n    isLoading: Ember['default'].computed.not('entriesSettled'),\n\n    decoratorXhr: null,\n\n    mobileCalendarVisible: false,\n\n    mobileEntriesActive: false,\n\n    currentMonthValue: Ember['default'].computed('date', function () {\n      return moment['default'](this.get('date')).month();\n    }),\n\n    currentMonth: changeGate['default']('currentMonthValue', function (value) {\n      return value;\n    }),\n\n    _kickCurrentMonthIntoGearForDecorators: Ember['default'].on('init', function () {\n      // FIX ME: currentMonth will not run even if date changes unless we initialize it\n      this.get('currentMonth');\n    }),\n\n    decorators: Ember['default'].computed('currentMonth', 'currentLocation.id', function () {\n      var decorators = [];\n      // var xhr = this.get('decoratorXhr');\n\n      //TODO-EMBER2-FIX\n      // if (xhr){\n      //   xhr.abort();\n      // }\n\n      var getDecorators = this.get('ajax').request(urlBuilder['default'].v1.entriesCalendarUrl(this.get('currentLocation.id'), this.get('date'))).then(function (json) {\n        Ember['default'].run(function () {\n          decorators.addObjects(json.calendar);\n        });\n      });\n      this.set('decoratorXhr', getDecorators);\n\n      return decorators;\n    }),\n\n    datesWithInvites: Ember['default'].computed('decorators.[]', function () {\n      var decorators = this.get('decorators').filter(function (decorator) {\n        return decorator.invites > 0;\n      });\n      return decorators.map(function (decorator) {\n        var date = moment['default'](decorator.date);\n        return date;\n      });\n    }),\n\n    showFullDate: Ember['default'].computed.notEmpty('query'),\n\n    actions: {\n      chooseToday: function chooseToday() {\n        this.set('query', '');\n        this.set('selectedDate', moment['default']());\n      },\n\n      goBack: function goBack() {\n        this.set('query', '');\n        this.get('selectedDate').subtract(1, 'day');\n        this.notifyPropertyChange('selectedDate');\n      },\n\n      goForward: function goForward() {\n        this.set('query', '');\n        this.get('selectedDate').add(1, 'day');\n        this.notifyPropertyChange('selectedDate');\n      },\n\n      printPreregisteredBadges: function printPreregisteredBadges(callback) {\n        var selectedInvites = this.get('invitesSelectedToPrint');\n        var inviteIds = selectedInvites.mapBy('id');\n        var self = this;\n        var promise = this.get('ajax').request(urlBuilder['default'].v1.printBadgesUrl(this.get('currentLocation.id')), {\n          type: 'POST',\n          data: {\n            invite_ids: inviteIds\n          }\n        });\n        callback(promise);\n        flashPromise['default'](promise, this);\n        promise.then(function () {\n          self.send('deselectAllInvites');\n        });\n      },\n\n      selectAllInvites: function selectAllInvites() {\n        this.get('invitesNotFulfilled').setEach('isSelected', true);\n      },\n\n      deselectAllInvites: function deselectAllInvites() {\n        this.get('invitesNotFulfilled').setEach('isSelected', false);\n      },\n\n      toggleCalendarVisible: function toggleCalendarVisible() {\n        this.toggleProperty('mobileCalendarVisible');\n      },\n\n      redirectToEnvoyWebInvite: function redirectToEnvoyWebInvite(invite) {\n        var redirectPath = '/invites/' + invite.get('id') + '/edit';\n        this.send('redirectToEnvoy', redirectPath);\n      }\n    }\n\n  });\n\n});","define('garaje/controllers/pre-registration-upgrade', ['exports', 'ember', 'garaje/utils/flash-promise'], function (exports, Ember, flashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    plans: Ember['default'].inject.controller(),\n    premiumPlan: Ember['default'].computed.alias('plans.premiumPlan'),\n    currentPlan: Ember['default'].computed.alias('plans.currentPlan'),\n\n    actions: {\n\n      selectPlan: function selectPlan(plan, period) {\n        var params = { queryParams: { plan: plan, period: period } };\n        this.transitionToRoute('subscribe', params);\n      },\n\n      enablePreRegistration: function enablePreRegistration(callback) {\n        var self = this;\n        var model = this.get('model');\n        model.set('preRegistrationEnabled', true);\n        var promise = model.save();\n        flashPromise['default'](promise, this);\n        callback(promise);\n        promise.then(function () {\n          self.transitionToRoute('pre-registration');\n        });\n      }\n\n    }\n  });\n\n});","define('garaje/controllers/pre-registration', ['exports', 'ember', 'garaje/utils/toggleable', 'garaje/utils/flash-promise', 'garaje/utils/url-builder'], function (exports, Ember, toggleable, flashPromise, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    ajax: Ember['default'].inject.service(),\n\n    //\n    // toggleable assumes there is a model and does a direct set on it\n    // that's why we don't need to do model.property when using it.\n    //\n    preRegistrationEnabled: toggleable['default']('preRegistrationEnabled'),\n    ccReceptionistEnabled: toggleable['default']('ccReceptionistEnabled'),\n    sendNdaInvite: toggleable['default']('sendNdaInvite'),\n\n    editEmailVisible: true,\n    previewEmailObject: null,\n\n    actions: {\n      save: function save(callback) {\n        var promise = this.get('model').save();\n        callback(promise);\n        flashPromise['default'](promise, this);\n      },\n\n      regeneratePreRegistrationLink: function regeneratePreRegistrationLink() {\n        if (window.confirm('Are you sure want to regenerate the employee invitation link? Existing link will stop working.')) {\n          this.set('preRegistrationLinkCallback', this.get('model').generatePreRegistrationLink());\n        }\n      },\n\n      regenerateSecurityDeskLink: function regenerateSecurityDeskLink() {\n        if (window.confirm('Are you sure want to regenerate the security desk link? Existing link will stop working.')) {\n          this.set('securityDeskLinkCallback', this.get('model').generateSecurityDeskLink());\n        }\n      },\n\n      setEmailPreviewActive: function setEmailPreviewActive() {\n        this.set('editEmailVisible', false);\n        this.send('getEmailPreview');\n      },\n\n      setEmailEditActive: function setEmailEditActive() {\n        this.set('editEmailVisible', true);\n      },\n\n      sendTestEmail: function sendTestEmail(callback) {\n        var _this = this;\n\n        var locationId = this.get('currentLocation.id');\n\n        var promise = this.get('ajax').request(urlBuilder['default'].v1.sendInvitePreviewUrl(locationId), {\n          type: 'POST',\n          data: {\n            notes: this.get('model.preRegistrationNotes')\n          }\n        }).then(function () {\n          _this.set('testEmailSent', true);\n          Ember['default'].run.later(_this, function () {\n            this.set('testEmailSent', false);\n          }, 2500);\n        });\n        callback(promise);\n        flashPromise['default'](promise, this, 'Sent!');\n      },\n\n      getEmailPreview: function getEmailPreview() {\n        var _this2 = this;\n\n        var preRegistrationNotes = this.get('model.preRegistrationNotes');\n\n        if (this.get('lastMarkdown') !== preRegistrationNotes) {\n          this.setProperties({\n            lastMarkdown: preRegistrationNotes,\n            previewEmailObject: null\n          });\n\n          var locationId = this.get('currentLocation.id');\n\n          this.get('ajax').request(urlBuilder['default'].v1.invitePreviewUrl(locationId), {\n            type: 'POST',\n            data: { notes: preRegistrationNotes }\n          }).then(function (response) {\n            _this2.set('previewEmailObject', response);\n          });\n        }\n      }\n    }\n  });\n\n});","define('garaje/controllers/subscribe', ['exports', 'ember', 'garaje/utils/flash-promise', 'garaje/mixins/highlight-changes', 'garaje/utils/simple-ledger', 'garaje/utils/location-line-item', 'garaje/utils/url-builder'], function (exports, Ember, flashPromise, HighlightChanges, SimpleLedger, LocationLineItem, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend(HighlightChanges['default'], {\n    ajax: Ember['default'].inject.service(),\n    locations: Ember['default'].inject.service(),\n    messageBus: Ember['default'].inject.service(),\n    previousTransition: null,\n\n    highlightProperties: ['price'],\n\n    queryParams: ['plan', 'period'],\n    plan: null,\n    period: '',\n    subscribeButtonTitle: Ember['default'].computed('model.name', 'period', {\n      get: function get() {\n        return 'Subscribe to ' + this.get('model.name') + ' ' + this.get('period').capitalize();\n      }\n    }).readOnly(),\n\n    procurementSources: ['Envoy in a Box', 'Apple.com', 'Apple Retail Store', 'CDW', 'Compucom', 'Insight', 'PCC', 'PCMall', 'SHI', 'Zones', 'Already had an iPad'],\n\n    // Public API\n    isYearlyPeriod: Ember['default'].computed.equal('period', 'yearly'),\n\n    coupon: Ember['default'].computed.alias('subscription.coupon'),\n\n    price: Ember['default'].computed('model', 'period', {\n      get: function get() {\n        var period = this.get('period');\n        return this.get('model.' + period + 'Price');\n      }\n    }).readOnly(),\n\n    monthlyCost: Ember['default'].computed('model.isFulfilled', 'coupon', 'quantity', function () {\n      var plan = this.get('model');\n      var coupon = this.get('coupon');\n      var quantity = this.get('quantity');\n\n      var lineItem;\n      var lineItems = [];\n      for (var i = 0; i < quantity; i++) {\n        lineItem = LocationLineItem['default'].create({\n          period: 'monthly',\n          plan: plan\n        });\n        lineItems.push(lineItem);\n      }\n\n      var ledger = SimpleLedger['default'].create({\n        lineItems: lineItems,\n        coupon: coupon\n      });\n      return ledger.get('total');\n    }).readOnly(),\n\n    yearlyCost: Ember['default'].computed('model.isFulfilled', 'coupon', 'quantity', function () {\n      var plan = this.get('model');\n      var coupon = this.get('coupon');\n      var quantity = this.get('quantity');\n\n      var lineItem;\n      var lineItems = [];\n      for (var i = 0; i < quantity; i++) {\n        lineItem = LocationLineItem['default'].create({\n          period: 'yearly',\n          plan: plan\n        });\n        lineItems.push(lineItem);\n      }\n\n      var ledger = SimpleLedger['default'].create({\n        lineItems: lineItems,\n        coupon: coupon\n      });\n\n      return ledger.get('total');\n    }).readOnly(),\n\n    yearlySavings: Ember['default'].computed('monthlyCost', 'yearlyCost', function () {\n      var monthlyCost = this.get('monthlyCost') * 12;\n      var yearlyCost = this.get('yearlyCost');\n\n      return monthlyCost - yearlyCost;\n    }).readOnly(),\n\n    quantity: Ember['default'].computed('model.quantity', 'numberOfActiveLocations', function () {\n      return this.get('model.quantity') || this.get('numberOfActiveLocations');\n    }).readOnly(),\n\n    isCCPresent: Ember['default'].computed.alias('subscription.isCCPresent'),\n\n    isCurrentPeriodYearly: Ember['default'].computed.equal('subscription.period', 'yearly'),\n\n    isSamePlan: Ember['default'].computed('subscription.plan', 'plan', function () {\n      return this.get('subscription.plan') === this.get('plan');\n    }).readOnly(),\n\n    isUpgradingToYearly: Ember['default'].computed('subscription.period', 'period', 'isSamePlan', function () {\n      return this.get('isSamePlan') && this.get('period') === 'yearly' && this.get('subscription.period') === 'monthly';\n    }).readOnly(),\n\n    isFreePlanEnabled: Ember['default'].computed('subscription.{period,plan,isFreePlanEnabled}', 'period', {\n      get: function get() {\n        return this.get('subscription.isFreePlanEnabled') && this.get('period') === 'yearly' && this.get('subscription.plan') === 'standard' && this.get('subscription.period') === 'monthly';\n      }\n    }).readOnly(),\n\n    isYearlyPeriodFixed: Ember['default'].computed.or('isCurrentPeriodYearly', 'isUpgradingToYearly', 'isFreePlanEnabled'),\n\n    subscribeAction: Ember['default'].computed('isCCPresent', function () {\n      return this.get('isCCPresent') ? 'subscribe' : 'subscribeWithCC';\n    }),\n\n    // TODO this can go away when subscription.plan is an association\n    currentPlan: Ember['default'].computed('subscription.isSubscribed', 'subscription.plan', {\n      get: function get() {\n        if (this.get('subscription.isSubscribed')) {\n          var planId = this.get('subscription.plan');\n          return this.store.findRecord('plan', planId);\n        }\n      }\n    }).readOnly(),\n\n    // Private API\n    numberOfActiveLocations: Ember['default'].computed.alias('locations.active.length'),\n\n    ccIsValid: true,\n\n    actions: {\n      swapPeriod: function swapPeriod(isYearly) {\n        var period = 'monthly';\n        if (isYearly) {\n          period = 'yearly';\n        }\n\n        this.transitionToRoute({ queryParams: { period: period } });\n      },\n\n      subscribeWithCC: function subscribeWithCC(callback) {\n        this.get('messageBus').trigger('createStripeToken', callback);\n      },\n\n      submitSubscribeForm: function submitSubscribeForm() {\n        Ember['default'].$('.async-button:contains(Subscribe)').click();\n      },\n\n      subscribe: function subscribe(callback, stripeToken) {\n        var subscription = this.get('subscription.content'),\n            subscriptionProperties = this.getProperties('quantity', 'plan', 'period');\n\n        // if we get back to this action but already have a cc,\n        // stripeToken would be undefined\n        if (stripeToken) {\n          subscriptionProperties.stripeToken = stripeToken;\n        }\n        subscription.setProperties(subscriptionProperties);\n\n        // Not using subscription.save() here because it would\n        // post to /api/v1/subscriptions/me\n        var self = this;\n\n        var previousTransition = this.get('previousTransition');\n\n        var promise = this.get('ajax').request(urlBuilder['default'].v1.subscriptionUrl(), {\n          type: 'PUT',\n          data: { subscription: subscription.serialize() }\n        }).then(function (payload) {\n          payload.subscription.id = 'me';\n          self.store.pushPayload('subscription', payload);\n          if (previousTransition) {\n            previousTransition.retry();\n            self.set('previousTransition', null);\n          } else {\n            self.transitionToRoute('billing');\n          }\n        })['catch'](function (e) {\n          subscription.rollbackAttributes();\n          // pretender wraps up the ajax error,\n          // flash-promise is expecting the bare\n          // xhr object instead\n          throw e;\n        })['finally'](function () {\n          subscription.set('stripeToken', null);\n        });\n\n        callback(promise);\n        flashPromise['default'](promise, this);\n      }\n    }\n  });\n\n});","define('garaje/customize/accent-color/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    didColorChange: false,\n\n    actions: {\n      setColor: function setColor() {\n        if (this.get('didColorChange')) {\n          this.set('didColorChange', false);\n          this.sendAction('setColor');\n        }\n      },\n\n      colorChanged: function colorChanged() {\n        this.set('didColorChange', true);\n      }\n    }\n  });\n\n});","define('garaje/customize/accent-color/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 2,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/customize/accent-color/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"white mx-auto\");\n          var el2 = dom.createTextNode(\"Choose a color\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 9,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/customize/accent-color/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"mt3 flex\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"sm-col-5 lg-col-4\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"h5\");\n        var el4 = dom.createElement(\"strong\");\n        var el5 = dom.createTextNode(\"Tip:\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" Pick a color that works well with white text.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"color-picker\",[],[\"cssColor\",[\"subexpr\",\"@mut\",[[\"get\",\"color\",[\"loc\",[null,[2,27],[2,32]]]]],[],[]],\"class\",\"flex-none flex flex-center rounded p2 mr2 border-box center cursor-pointer\",\"onHide\",\"setColor\",\"onChange\",\"colorChanged\"],0,null,[\"loc\",[null,[2,2],[4,19]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/customize/company-logo/component', ['exports', 'ember', 'garaje/utils/url-builder', 'garaje/mixins/droppable-upload'], function (exports, Ember, urlBuilder, DroppableUpload) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(DroppableUpload['default'], {\n    classNames: ['droppable', 'js-logo-upload'],\n\n    isLogoUploading: false,\n\n    logoUploadUrl: Ember['default'].computed('location.id', function () {\n      return urlBuilder['default'].v1.locationUrl(this.get('location.id'));\n    }),\n\n    actions: {\n      toggleIsLogoUploading: function toggleIsLogoUploading() {\n        this.toggleProperty('isLogoUploading');\n      }\n    }\n  });\n\n});","define('garaje/customize/company-logo/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mx-auto is-uploading relative\");\n          dom.setAttribute(el1,\"style\",\"width:200px;height:200px\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"loading\"],[],[\"loc\",[null,[5,8],[5,29]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 7,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 9,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"class\",\"rounded mx-auto\");\n            dom.setAttribute(el1,\"style\",\"max-width:200px;max-height:200px;\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element3 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createAttrMorph(element3, 'src');\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"src\",[\"get\",\"location.logo.url\",[\"loc\",[null,[8,41],[8,58]]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 9,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 11,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"class\",\"rounded mx-auto\");\n            dom.setAttribute(el1,\"src\",\"assets/images/logo-placeholder.png\");\n            dom.setAttribute(el1,\"style\",\"max-width:200px;max-height:200px;\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"location.logo\",[\"loc\",[null,[7,14],[7,27]]]]],[],0,1,[\"loc\",[null,[7,4],[11,4]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 29,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 31,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"btn btn--small btn--redHoverFill ml1 js-delete-logo\");\n          dom.setAttribute(el1,\"tabindex\",\"-1\");\n          var el2 = dom.createTextNode(\"Delete\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element2);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[[\"get\",\"deleteLogo\",[\"loc\",[null,[30,80],[30,90]]]]],[],[\"loc\",[null,[30,71],[30,92]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 38,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 40,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"tabindex\",\"-1\");\n          dom.setAttribute(el1,\"class\",\"js-welcome-image-link\");\n          var el2 = dom.createTextNode(\"welcome image\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element1);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[[\"get\",\"expandWelcomeImage\",[\"loc\",[null,[39,20],[39,38]]]]],[],[\"loc\",[null,[39,11],[39,40]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 40,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 42,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        welcome image\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 46,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 48,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"tabindex\",\"-1\");\n          dom.setAttribute(el1,\"class\",\"js-slideshows-link\");\n          var el2 = dom.createTextNode(\"slideshow\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\".\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element0);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[[\"get\",\"expandSlideshow\",[\"loc\",[null,[47,20],[47,35]]]]],[],[\"loc\",[null,[47,11],[47,37]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child6 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 48,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 50,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        slideshow.\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 54,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/customize/company-logo/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"mt3 flex\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex-none flex flex-center mr2 rounded js-logo\");\n        dom.setAttribute(el2,\"style\",\"width:200px;height:200px\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"sm-col-5 lg-col-4\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"uploadButton mb2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"span\");\n        dom.setAttribute(el4,\"class\",\"btn btn--small btn--blue\");\n        var el5 = dom.createTextNode(\"Select file\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"h5\");\n        var el4 = dom.createTextNode(\"We recommend uploading a transparent PNG cropped to the edges of your logo and up to 1000px wide or 600px tall.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"h5\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"strong\");\n        var el5 = dom.createTextNode(\"Tip:\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" To further customize the look of your iPad, add a\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      or\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element4 = dom.childAt(fragment, [0]);\n        var element5 = dom.childAt(element4, [3]);\n        var element6 = dom.childAt(element5, [1]);\n        var element7 = dom.childAt(element5, [5]);\n        var morphs = new Array(5);\n        morphs[0] = dom.createMorphAt(dom.childAt(element4, [1]),1,1);\n        morphs[1] = dom.createMorphAt(element6,1,1);\n        morphs[2] = dom.createMorphAt(element6,5,5);\n        morphs[3] = dom.createMorphAt(element7,3,3);\n        morphs[4] = dom.createMorphAt(element7,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isLogoUploading\",[\"loc\",[null,[3,10],[3,25]]]]],[],0,1,[\"loc\",[null,[3,4],[11,11]]]],\n        [\"inline\",\"file-upload\",[],[\"url\",[\"subexpr\",\"@mut\",[[\"get\",\"logoUploadUrl\",[\"loc\",[null,[17,10],[17,23]]]]],[],[]],\"namespace\",\"location\",\"param\",\"logo\",\"requestType\",\"PUT\",\"accept\",\"image/png,image/gif,image/jpeg\",\"action\",[\"subexpr\",\"action\",[[\"get\",\"setLogo\",[\"loc\",[null,[22,21],[22,28]]]]],[],[\"loc\",[null,[22,13],[22,29]]]],\"beginUpload\",[\"subexpr\",\"action\",[\"toggleIsLogoUploading\"],[],[\"loc\",[null,[23,18],[23,50]]]],\"allUploaded\",[\"subexpr\",\"action\",[\"toggleIsLogoUploading\"],[],[\"loc\",[null,[24,18],[24,50]]]],\"targetObject\",[\"subexpr\",\"@mut\",[[\"get\",\"parent\",[\"loc\",[null,[25,19],[25,25]]]]],[],[]],\"files\",[\"subexpr\",\"@mut\",[[\"get\",\"files\",[\"loc\",[null,[26,12],[26,17]]]]],[],[]]],[\"loc\",[null,[16,6],[27,8]]]],\n        [\"block\",\"if\",[[\"get\",\"location.logo.url\",[\"loc\",[null,[29,12],[29,29]]]]],[],2,null,[\"loc\",[null,[29,6],[31,13]]]],\n        [\"block\",\"if\",[[\"get\",\"expandWelcomeImage\",[\"loc\",[null,[38,12],[38,30]]]]],[],3,4,[\"loc\",[null,[38,6],[42,13]]]],\n        [\"block\",\"if\",[[\"get\",\"expandSlideshow\",[\"loc\",[null,[46,12],[46,27]]]]],[],5,6,[\"loc\",[null,[46,6],[50,13]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5, child6]\n    };\n  }()));\n\n});","define('garaje/customize/controller', ['exports', 'ember', 'garaje/mixins/company-logo-handlers', 'garaje/mixins/accent-color-handlers', 'garaje/mixins/welcome-image-handlers', 'garaje/mixins/slideshow-handlers', 'garaje/utils/toggleable'], function (exports, Ember, CompanyLogoHandlers, AccentColorHandlers, WelcomeImageHandlers, SlideshowHandlers, toggleable) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend(CompanyLogoHandlers['default'], AccentColorHandlers['default'], WelcomeImageHandlers['default'], SlideshowHandlers['default'], {\n    location: Ember['default'].computed.alias('model.location'),\n    config: Ember['default'].computed.alias('model.config'),\n    slideshows: Ember['default'].computed.alias('config.slideshows'),\n    subscription: Ember['default'].inject.service(),\n\n    welcomeImage: toggleable['default']('welcomeImage', 'config'),\n    onlyShowSlideshow: toggleable['default']('onlyShowSlideshow', 'config')\n  });\n\n});","define('garaje/customize/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Customize',\n\n    subscription: Ember['default'].inject.service(),\n\n    beforeModel: function beforeModel() {\n      if (!this.get('subscription.isFreePlanEnabled')) {\n        this.transitionTo('dashboard');\n      }\n    },\n\n    model: function model() {\n      return Ember['default'].RSVP.hash({\n        location: this.get('currentLocation'),\n        config: this.get('currentLocation.config')\n      });\n    }\n  });\n\n});","define('garaje/customize/slideshow-images/component', ['exports', 'ember', 'garaje/utils/url-builder', 'npm:semver', 'garaje/mixins/droppable-upload'], function (exports, Ember, urlBuilder, semver, DroppableUpload) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(DroppableUpload['default'], {\n    classNameBindings: ['isDroppable:droppable', ':js-slideshow-upload'],\n\n    currentLocation: Ember['default'].inject.service(),\n\n    messageBus: Ember['default'].inject.service(),\n\n    isEditingSlideshow: false,\n\n    isDroppable: Ember['default'].computed('isEditingSlideshow', 'isMaxSlideshows', {\n      get: function get() {\n        return this.get('isEditingSlideshow') && !this.get('isMaxSlideshows');\n      }\n    }).readOnly(),\n\n    slideshowUploadUrl: Ember['default'].computed({\n      get: function get() {\n        return urlBuilder['default'].v1.slideshowUploadUrl();\n      }\n    }).readOnly(),\n\n    maxSlideshows: Ember['default'].computed('slideshows.length', {\n      get: function get() {\n        return 5 - this.get('slideshows.length');\n      }\n    }).readOnly(),\n\n    isMaxSlideshows: Ember['default'].computed('maxSlideshows', {\n      get: function get() {\n        return this.get('maxSlideshows') <= 0;\n      }\n    }).readOnly(),\n\n    slideshowExtra: Ember['default'].computed('currentLocation.id', function () {\n      return { location_id: this.get('currentLocation.id') };\n    }),\n\n    didInitAttrs: function didInitAttrs() {\n      this.set('isEditingSlideshow', this.get('slideshows.length') > 0);\n    },\n\n    onlyShowSlideshowCopy: Ember['default'].computed('welcomeImage', 'currentLocation.logo', {\n      get: function get() {\n        if (this.get('welcomeImage')) {\n          return 'Welcome Image';\n        } else if (this.get('currentLocation.logo')) {\n          return 'Company Logo';\n        } else {\n          return 'Company Name';\n        }\n      }\n    }).readOnly(),\n\n    hasOnlyShowSlideshowVersion: Ember['default'].computed('currentLocation.installedVersion', {\n      get: function get() {\n        var installedVersion = this.get('currentLocation.installedVersion');\n        return semver['default'].valid(installedVersion) && semver['default'].gte(installedVersion, '1.4.1');\n      }\n    }).readOnly(),\n\n    installExpandHandler: Ember['default'].on('didInsertElement', function () {\n      this.get('messageBus').on('expandSlideshow', this, this.enableSlideshow);\n    }),\n\n    willDestroy: function willDestroy() {\n      this.get('messageBus').off('expandSlideshow', this, this.enableSlideshow);\n    },\n\n    enableSlideshow: function enableSlideshow() {\n      this.set('isEditingSlideshow', true);\n    },\n\n    actions: {\n      enableSlideshow: function enableSlideshow() {\n        this.enableSlideshow();\n      }\n    }\n  });\n\n});","define('garaje/customize/slideshow-images/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 10,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 12,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/customize/slideshow-images/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue js-enable-slideshow\");\n          var el2 = dom.createTextNode(\"Enable\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element5 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element5);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"enableSlideshow\"],[],[\"loc\",[null,[11,62],[11,90]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 19,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 24,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/customize/slideshow-images/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"flex flex-center\");\n              dom.setAttribute(el1,\"style\",\"height:150px\");\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"img\");\n              dom.setAttribute(el2,\"class\",\"mx-auto\");\n              dom.setAttribute(el2,\"style\",\"max-width:150px;max-height:150px\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--smaller btn--redHoverFill flex-none js-delete-slideshow\");\n              dom.setAttribute(el1,\"tabindex\",\"-1\");\n              var el2 = dom.createTextNode(\"Delete\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element1 = dom.childAt(fragment, [1, 1]);\n              var element2 = dom.childAt(fragment, [3]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createAttrMorph(element1, 'src');\n              morphs[1] = dom.createElementMorph(element2);\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"src\",[\"get\",\"slideshow.url\",[\"loc\",[null,[21,25],[21,38]]]]],\n              [\"element\",\"action\",[[\"get\",\"removeSlideshow\",[\"loc\",[null,[23,97],[23,112]]]],[\"get\",\"slideshow\",[\"loc\",[null,[23,113],[23,122]]]]],[],[\"loc\",[null,[23,88],[23,124]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 24,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 26,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/customize/slideshow-images/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"partial\",[\"loading\"],[],[\"loc\",[null,[25,12],[25,33]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 28,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/customize/slideshow-images/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"flex flex-column mr2 relative js-slideshowPreview-wrapper\");\n            dom.setAttribute(el1,\"style\",\"width:150px;height:150px\");\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"slideshow.url\",[\"loc\",[null,[19,16],[19,29]]]]],[],0,1,[\"loc\",[null,[19,10],[26,17]]]]\n          ],\n          locals: [\"slideshow\"],\n          templates: [child0, child1]\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 28,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 32,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/customize/slideshow-images/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"flex-auto mr2 js-slideshowPreview-wrapper js-placeholder\");\n            dom.setAttribute(el1,\"style\",\"max-width:150px\");\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"img\");\n            dom.setAttribute(el2,\"src\",\"assets/images/slideshow-placeholder.png\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 61,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 72,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/customize/slideshow-images/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form flex flex-center border-top mt2 pt3 pb1\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"flex-auto pr2\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"h4\");\n            var el4 = dom.createTextNode(\"Hide \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" from Welcome Screen\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            dom.setAttribute(el3,\"class\",\"m0\");\n            var el4 = dom.createTextNode(\"Show slideshow images only.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"label\");\n            dom.setAttribute(el2,\"class\",\"toggle\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"span\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [1, 1]),1,1);\n            morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"onlyShowSlideshowCopy\",[\"loc\",[null,[64,19],[64,44]]]],\n            [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-only-show-slideshow\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"onlyShowSlideshow\",[\"loc\",[null,[68,73],[68,90]]]]],[],[]]],[\"loc\",[null,[68,10],[68,92]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 15,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 73,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/customize/slideshow-images/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"tokenized-form my3 flex js-slideshowUpload-wrapper\");\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"uploadButton mb2\");\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"span\");\n          dom.setAttribute(el4,\"class\",\"btn btn--small btn--blue\");\n          var el5 = dom.createTextNode(\"Select files\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"h5\");\n          var el4 = dom.createTextNode(\"We recommend a 1536 × 2048px image.\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"h5\");\n          var el4 = dom.createTextNode(\"\\n          Templates:\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"href\",\"https://envoy.co/downloads/welcome-screen-templates.psd.zip\");\n          dom.setAttribute(el4,\"class\",\"downloadTemplates-photoshop\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"href\",\"https://envoy.co/downloads/welcome-screen-templates.sketch.zip\");\n          dom.setAttribute(el4,\"class\",\"downloadTemplates-sketch\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element3 = dom.childAt(fragment, [1]);\n          var element4 = dom.childAt(element3, [3]);\n          var morphs = new Array(4);\n          morphs[0] = dom.createMorphAt(element3,1,1);\n          morphs[1] = dom.createAttrMorph(element4, 'class');\n          morphs[2] = dom.createMorphAt(dom.childAt(element4, [1]),1,1);\n          morphs[3] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"each\",[[\"get\",\"slideshows\",[\"loc\",[null,[17,14],[17,24]]]]],[],0,1,[\"loc\",[null,[17,6],[32,15]]]],\n          [\"attribute\",\"class\",[\"concat\",[\"flex-auto \",[\"subexpr\",\"if\",[[\"get\",\"isMaxSlideshows\",[\"loc\",[null,[34,33],[34,48]]]],\"display-none\"],[],[\"loc\",[null,[34,28],[34,65]]]],\" js-file-upload-container\"]]],\n          [\"inline\",\"file-upload\",[],[\"url\",[\"subexpr\",\"@mut\",[[\"get\",\"slideshowUploadUrl\",[\"loc\",[null,[37,14],[37,32]]]]],[],[]],\"namespace\",\"slideshow\",\"param\",\"image\",\"extra\",[\"subexpr\",\"@mut\",[[\"get\",\"slideshowExtra\",[\"loc\",[null,[40,16],[40,30]]]]],[],[]],\"accept\",\"image/png,image/gif,image/jpeg\",\"beginUpload\",[\"subexpr\",\"action\",[[\"get\",\"addSlideshow\",[\"loc\",[null,[42,30],[42,42]]]]],[],[\"loc\",[null,[42,22],[42,43]]]],\"action\",[\"subexpr\",\"action\",[[\"get\",\"finalizeSlideshow\",[\"loc\",[null,[43,25],[43,42]]]]],[],[\"loc\",[null,[43,17],[43,43]]]],\"allUploaded\",[\"subexpr\",\"action\",[[\"get\",\"refreshConfig\",[\"loc\",[null,[44,30],[44,43]]]]],[],[\"loc\",[null,[44,22],[44,44]]]],\"multiple\",true,\"max\",[\"subexpr\",\"@mut\",[[\"get\",\"maxSlideshows\",[\"loc\",[null,[46,14],[46,27]]]]],[],[]],\"targetObject\",[\"subexpr\",\"@mut\",[[\"get\",\"parent\",[\"loc\",[null,[47,23],[47,29]]]]],[],[]],\"files\",[\"subexpr\",\"@mut\",[[\"get\",\"files\",[\"loc\",[null,[48,16],[48,21]]]]],[],[]]],[\"loc\",[null,[36,10],[49,12]]]],\n          [\"block\",\"if\",[[\"get\",\"hasOnlyShowSlideshowVersion\",[\"loc\",[null,[61,10],[61,37]]]]],[],2,null,[\"loc\",[null,[61,4],[72,11]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 75,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/customize/slideshow-images/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"border rounded p2 flex flex-column mt3 js-slideshows\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex flex-center\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"img\");\n        dom.setAttribute(el4,\"src\",\"assets/images/features/slideshow.png\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h4\");\n        var el5 = dom.createTextNode(\"Slideshow\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"m0\");\n        var el5 = dom.createTextNode(\"Choose up to five full-screen images to cycle behind your logo or welcome image.\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element6 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(dom.childAt(element6, [1]),5,5);\n        morphs[1] = dom.createMorphAt(element6,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"unless\",[[\"get\",\"isEditingSlideshow\",[\"loc\",[null,[10,14],[10,32]]]]],[],0,null,[\"loc\",[null,[10,4],[12,15]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"isEditingSlideshow\",[\"loc\",[null,[15,15],[15,33]]]]],[\"class\",\"row js-tokenized\"],1,null,[\"loc\",[null,[15,2],[73,16]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/customize/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 12,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/customize/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"col-8 mr2\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h2\");\n            dom.setAttribute(el2,\"class\",\"white\");\n            var el3 = dom.createTextNode(\"You must upgrade to customize Envoy.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"p\");\n            dom.setAttribute(el2,\"class\",\"white m0 mt1\");\n            var el3 = dom.createTextNode(\"Upgrade to an Envoy Premium or Enterprise plan to add custom logos and colors to your iPad welcome screen, pre-registration emails, and badges.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"flex-auto\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,5,5,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"link-to\",[\"Upgrade\",\"plans\"],[\"class\",\"btn btn--white m0\"],[\"loc\",[null,[11,10],[11,65]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 12,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/customize/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h2\");\n            dom.setAttribute(el2,\"class\",\"white\");\n            var el3 = dom.createTextNode(\"You must upgrade to customize Envoy.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"p\");\n            dom.setAttribute(el2,\"class\",\"white m0 mt1\");\n            var el3 = dom.createTextNode(\"To add custom logos and colors to your iPad welcome screen, pre-registration emails, and badges, you’ll need to upgrade to an Envoy Premium or Enterprise plan. Please contact your admin to upgrade.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 21,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/customize/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"bg-orange mbn2 js-upgrade-free-plan\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"container px2 py3\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex flex-center\");\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1, 1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"subscription.canAccessBilling\",[\"loc\",[null,[5,14],[5,43]]]]],[],0,1,[\"loc\",[null,[5,8],[17,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\",\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 69,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/customize/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Logo\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 grayDark\");\n        var el5 = dom.createTextNode(\"Your logo will appear on the iPad, visitor badges, and pre-registration emails. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/getting-started/personalize-account-settings/#edit-logo-and-select-accent-color\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Accent Color\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 grayDark\");\n        var el5 = dom.createTextNode(\"Choose a custom accent color for the details on your iPad and pre-registration emails. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/getting-started/personalize-account-settings/#edit-logo-and-select-accent-color\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [2]);\n        var element1 = dom.childAt(element0, [1, 1]);\n        var morphs = new Array(6);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        morphs[1] = dom.createAttrMorph(element0, 'class');\n        morphs[2] = dom.createMorphAt(element1,5,5);\n        morphs[3] = dom.createMorphAt(element1,11,11);\n        morphs[4] = dom.createMorphAt(element1,13,13);\n        morphs[5] = dom.createMorphAt(element1,15,15);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"unless\",[[\"get\",\"subscription.canCustomize\",[\"loc\",[null,[1,10],[1,35]]]]],[],0,null,[\"loc\",[null,[1,0],[21,11]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"container px2 \",[\"subexpr\",\"unless\",[[\"get\",\"subscription.canCustomize\",[\"loc\",[null,[23,35],[23,60]]]],\"grayedOutSection\"],[],[\"loc\",[null,[23,26],[23,81]]]]]]],\n        [\"inline\",\"customize/company-logo\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"location\",[\"loc\",[null,[30,15],[30,23]]]]],[],[]],\"class\",\"columns\",\"expandWelcomeImage\",[\"subexpr\",\"action\",[\"expandWelcomeImage\"],[],[\"loc\",[null,[32,25],[32,54]]]],\"expandSlideshow\",[\"subexpr\",\"action\",[\"expandSlideshow\"],[],[\"loc\",[null,[33,22],[33,48]]]],\"setLogo\",[\"subexpr\",\"action\",[\"setLogo\"],[],[\"loc\",[null,[34,14],[34,32]]]],\"deleteLogo\",[\"subexpr\",\"action\",[\"deleteLogo\"],[],[\"loc\",[null,[35,17],[35,38]]]],\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[36,13],[36,17]]]]],[],[]]],[\"loc\",[null,[29,6],[37,8]]]],\n        [\"inline\",\"customize/accent-color\",[],[\"locationId\",[\"subexpr\",\"@mut\",[[\"get\",\"model.id\",[\"loc\",[null,[43,17],[43,25]]]]],[],[]],\"color\",[\"subexpr\",\"@mut\",[[\"get\",\"model.color\",[\"loc\",[null,[44,12],[44,23]]]]],[],[]],\"class\",\"columns\",\"setColor\",[\"subexpr\",\"action\",[\"setColor\"],[],[\"loc\",[null,[46,15],[46,34]]]]],[\"loc\",[null,[42,6],[47,8]]]],\n        [\"inline\",\"customize/welcome-image\",[],[\"config\",[\"subexpr\",\"@mut\",[[\"get\",\"model.config\",[\"loc\",[null,[50,13],[50,25]]]]],[],[]],\"setWelcomeImage\",[\"subexpr\",\"action\",[\"setWelcomeImage\"],[],[\"loc\",[null,[51,22],[51,48]]]],\"deleteWelcomeImage\",[\"subexpr\",\"action\",[\"deleteWelcomeImage\"],[],[\"loc\",[null,[52,25],[52,54]]]],\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[53,13],[53,17]]]]],[],[]]],[\"loc\",[null,[49,6],[54,8]]]],\n        [\"inline\",\"customize/slideshow-images\",[],[\"welcomeImage\",[\"subexpr\",\"@mut\",[[\"get\",\"welcomeImage\",[\"loc\",[null,[57,19],[57,31]]]]],[],[]],\"slideshows\",[\"subexpr\",\"@mut\",[[\"get\",\"slideshows\",[\"loc\",[null,[58,17],[58,27]]]]],[],[]],\"onlyShowSlideshow\",[\"subexpr\",\"@mut\",[[\"get\",\"onlyShowSlideshow\",[\"loc\",[null,[59,24],[59,41]]]]],[],[]],\"addSlideshow\",[\"subexpr\",\"action\",[\"addSlideshow\"],[],[\"loc\",[null,[60,19],[60,42]]]],\"removeSlideshow\",[\"subexpr\",\"action\",[\"removeSlideshow\"],[],[\"loc\",[null,[61,22],[61,48]]]],\"finalizeSlideshow\",[\"subexpr\",\"action\",[\"finalizeSlideshow\"],[],[\"loc\",[null,[62,24],[62,52]]]],\"refreshConfig\",[\"subexpr\",\"action\",[\"refreshConfig\"],[],[\"loc\",[null,[63,20],[63,44]]]],\"setOnlyShowSlideshow\",[\"subexpr\",\"action\",[\"setOnlyShowSlideshow\"],[],[\"loc\",[null,[64,27],[64,58]]]],\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[65,13],[65,17]]]]],[],[]]],[\"loc\",[null,[56,6],[66,8]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/customize/welcome-image/component', ['exports', 'ember', 'garaje/utils/url-builder', 'garaje/mixins/droppable-upload'], function (exports, Ember, urlBuilder, DroppableUpload) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(DroppableUpload['default'], {\n    classNameBindings: ['isEditingWelcomeImage:droppable', ':js-welcome-image-upload'],\n\n    isEditingWelcomeImage: false,\n\n    isWelcomeImageUploading: false,\n\n    messageBus: Ember['default'].inject.service(),\n\n    welcomeImageUploadUrl: Ember['default'].computed('config.id', {\n      get: function get() {\n        return urlBuilder['default'].v1.welcomeImageUploadUrl(this.get('config.id'));\n      }\n    }).readOnly(),\n\n    installExpandHandler: Ember['default'].on('didInsertElement', function () {\n      this.get('messageBus').on('expandWelcomeImage', this, this.enableWelcomeImage);\n    }),\n\n    willDestroy: function willDestroy() {\n      this.get('messageBus').off('expandWelcomeImage', this, this.enableWelcomeImage);\n    },\n\n    enableWelcomeImage: function enableWelcomeImage() {\n      this.set('isEditingWelcomeImage', true);\n    },\n\n    didInitAttrs: function didInitAttrs() {\n      var welcomeImageExists = !Ember['default'].isBlank(this.get('config.welcomeImage'));\n      this.set('isEditingWelcomeImage', welcomeImageExists);\n    },\n\n    actions: {\n      enableWelcomeImage: function enableWelcomeImage() {\n        this.enableWelcomeImage();\n      },\n\n      toggleIsWelcomeImageUploading: function toggleIsWelcomeImageUploading() {\n        this.toggleProperty('isWelcomeImageUploading');\n      }\n    }\n  });\n\n});","define('garaje/customize/welcome-image/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 10,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 12,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/customize/welcome-image/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"href\",\"#\");\n          dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n          var el2 = dom.createTextNode(\"Enable\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element4);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"enableWelcomeImage\"],[],[\"loc\",[null,[11,51],[11,82]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 18,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 22,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/customize/welcome-image/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"mx-auto is-uploading relative js-logo-preview\");\n            dom.setAttribute(el1,\"style\",\"width:200px;height:200px\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"partial\",[\"loading\"],[],[\"loc\",[null,[20,12],[20,33]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 22,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 24,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/customize/welcome-image/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"img\");\n              dom.setAttribute(el1,\"class\",\"rounded mx-auto js-logo-preview\");\n              dom.setAttribute(el1,\"style\",\"max-width:200px;max-height:200px;\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element1 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createAttrMorph(element1, 'src');\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"src\",[\"get\",\"config.welcomeImage\",[\"loc\",[null,[23,61],[23,80]]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 24,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 26,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/customize/welcome-image/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"img\");\n              dom.setAttribute(el1,\"class\",\"rounded mx-auto js-logo-preview\");\n              dom.setAttribute(el1,\"src\",\"assets/images/welcome-placeholder.png\");\n              dom.setAttribute(el1,\"style\",\"max-width:200px;max-height:200px;\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n        \");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 22,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 26,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/customize/welcome-image/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"config.welcomeImage\",[\"loc\",[null,[22,18],[22,37]]]]],[],0,1,[\"loc\",[null,[22,8],[26,8]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 45,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 47,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/customize/welcome-image/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"href\",\"#\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--redHoverFill ml1\");\n            dom.setAttribute(el1,\"tabindex\",\"-1\");\n            var el2 = dom.createTextNode(\"Delete\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element0);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[[\"get\",\"deleteWelcomeImage\",[\"loc\",[null,[46,78],[46,96]]]]],[],[\"loc\",[null,[46,69],[46,98]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 15,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 59,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/customize/welcome-image/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"tokenized-form mt2 mb2 flex\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex-none flex flex-center mr2 rounded js-logo\");\n          dom.setAttribute(el2,\"style\",\"width:200px;height:200px\");\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"sm-col-5 lg-col-4\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"uploadButton mb2\");\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"span\");\n          dom.setAttribute(el4,\"class\",\"btn btn--small btn--blue\");\n          var el5 = dom.createTextNode(\"Select file\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"h5\");\n          var el4 = dom.createTextNode(\"We recommend a 1000px square image.\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"h5\");\n          var el4 = dom.createElement(\"strong\");\n          var el5 = dom.createTextNode(\"Tip:\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\" Upload a more elaborate logo or custom graphic with a greeting.\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"h5\");\n          var el4 = dom.createTextNode(\"\\n          Templates:\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"href\",\"/assets/downloads/welcome-screen-templates.psd.zip\");\n          dom.setAttribute(el4,\"class\",\"downloadTemplates-photoshop\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"href\",\"/assets/downloads/welcome-screen-templates.sketch.zip\");\n          dom.setAttribute(el4,\"class\",\"downloadTemplates-sketch\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var element3 = dom.childAt(element2, [3, 1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n          morphs[1] = dom.createMorphAt(element3,1,1);\n          morphs[2] = dom.createMorphAt(element3,5,5);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"isWelcomeImageUploading\",[\"loc\",[null,[18,14],[18,37]]]]],[],0,1,[\"loc\",[null,[18,8],[26,15]]]],\n          [\"inline\",\"file-upload\",[],[\"url\",[\"subexpr\",\"@mut\",[[\"get\",\"welcomeImageUploadUrl\",[\"loc\",[null,[32,14],[32,35]]]]],[],[]],\"namespace\",\"config\",\"param\",\"welcome_image\",\"requestType\",\"PUT\",\"accept\",\"image/png,image/gif,image/jpeg\",\"action\",[\"subexpr\",\"action\",[[\"get\",\"setWelcomeImage\",[\"loc\",[null,[37,25],[37,40]]]]],[],[\"loc\",[null,[37,17],[37,41]]]],\"beginUpload\",[\"subexpr\",\"action\",[\"toggleIsWelcomeImageUploading\"],[],[\"loc\",[null,[38,22],[38,62]]]],\"allUploaded\",[\"subexpr\",\"action\",[\"toggleIsWelcomeImageUploading\"],[],[\"loc\",[null,[39,22],[39,62]]]],\"targetObject\",[\"subexpr\",\"@mut\",[[\"get\",\"parent\",[\"loc\",[null,[40,23],[40,29]]]]],[],[]],\"files\",[\"subexpr\",\"@mut\",[[\"get\",\"files\",[\"loc\",[null,[41,16],[41,21]]]]],[],[]]],[\"loc\",[null,[31,10],[42,12]]]],\n          [\"block\",\"if\",[[\"get\",\"config.welcomeImage\",[\"loc\",[null,[45,16],[45,35]]]]],[],2,null,[\"loc\",[null,[45,10],[47,17]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 60,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/customize/welcome-image/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"border rounded p2 flex flex-column mt3 js-welcome-image\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex flex-center\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"img\");\n        dom.setAttribute(el4,\"src\",\"assets/images/features/welcome-image.png\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h4\");\n        var el5 = dom.createTextNode(\"Welcome image\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"m0\");\n        var el5 = dom.createTextNode(\"Choose a graphic to appear on your welcome screen in place of your logo.\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element5 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(dom.childAt(element5, [1]),5,5);\n        morphs[1] = dom.createMorphAt(element5,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"unless\",[[\"get\",\"isEditingWelcomeImage\",[\"loc\",[null,[10,14],[10,35]]]]],[],0,null,[\"loc\",[null,[10,4],[12,15]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"isEditingWelcomeImage\",[\"loc\",[null,[15,15],[15,36]]]]],[\"class\",\"row js-tokenized\"],1,null,[\"loc\",[null,[15,2],[59,16]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/employee/controller', ['exports', 'ember', 'garaje/utils/flash-promise', 'ember-validations', 'garaje/helpers/array-to-sentence'], function (exports, Ember, flashPromise, Validations, array_to_sentence) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend(Validations['default'], {\n    ajax: Ember['default'].inject.service(),\n    employeesController: Ember['default'].inject.controller('employees'),\n\n    notEditable: Ember['default'].computed.bool('currentLocation.company.directorySyncProvider'),\n\n    validations: {\n      'inputName': { presence: true },\n      'model.email': { email: true },\n      'model.phoneNumber': { phoneNumber: '.js-employee-phone-number' }\n    },\n\n    inputName: Ember['default'].computed('model.name', {\n      get: function get() {\n        return this.get('model.name');\n      },\n      set: function set(k, v) {\n        return v;\n      }\n    }),\n\n    ccName: Ember['default'].computed('model.{isNew,name}', 'inputName', {\n      get: function get() {\n        if (this.get('model.isNew')) {\n          return this.get('inputName');\n        } else {\n          return this.get('model.name');\n        }\n      }\n    }).readOnly(),\n\n    defaultCountry: Ember['default'].computed(function () {\n      return Ember['default'].testing ? 'us' : 'auto';\n    }),\n\n    hasName: Ember['default'].computed.notEmpty('errors.model.name'),\n    hasEmail: Ember['default'].computed.notEmpty('errors.model.email'),\n    hasPhoneNumber: Ember['default'].computed.notEmpty('errors.model.phoneNumber'),\n\n    actions: {\n\n      save: function save(callback) {\n        var _this = this;\n\n        this.set('model.name', this.get('inputName'));\n        this.set('validated', true);\n\n        var promise = this.validate()['catch'](function () {\n          var errorTypes = [];\n\n          if (!_this.get('hasName')) {\n            errorTypes.push('name');\n          }\n          if (!_this.get('hasEmail')) {\n            errorTypes.push('properly formatted email');\n          }\n          if (!_this.get('hasPhoneNumber')) {\n            errorTypes.push('properly formatted phone number');\n          }\n\n          throw 'Please have a ' + array_to_sentence.arrayToSentence(errorTypes);\n        }).then(function () {\n          var isNew = _this.get('model.isNew');\n          var ajaxPromise = _this.get('model').save();\n          if (isNew) {\n            ajaxPromise.then(function (response) {\n              _this.get('employeesController.model.content').addObject(response._internalModel);\n\n              var location = _this.get('currentLocation.content');\n              var newEmployee = _this.store.createRecord('employee', {\n                location: location\n              });\n\n              _this.setProperties({\n                model: newEmployee,\n                validated: false\n              });\n\n              _this.get('employeesController').incrementProperty('employeesCount');\n              _this.transitionToRoute('new-employee');\n            });\n          }\n\n          return ajaxPromise;\n        });\n\n        flashPromise['default'](promise, this);\n\n        callback(promise);\n      },\n\n      'delete': function _delete() {\n        var _this2 = this;\n\n        if (window.confirm('Are you sure you want to delete this employee?')) {\n          var destroy;\n\n          (function () {\n            var model = _this2.get('model');\n            var employeesController = _this2.get('employeesController');\n            var url = _this2.store.adapterFor('employee').urlForDeleteRecord(model.get('id'), 'employee');\n\n            destroy = _this2.get('ajax').request(url, {\n              type: 'DELETE',\n              data: {\n                location_id: _this2.get('currentLocation.id')\n              }\n            }).then(function () {\n              employeesController.decrementProperty('employeesCount');\n              employeesController.get('model').removeObject(model);\n              _this2.store.unloadRecord(model);\n              return _this2.transitionToRoute('employees');\n            })['catch'](function (reason) {\n              // TODO - CHECKME\n              if (reason.message !== 'TransitionAborted') {\n                throw reason;\n              }\n            });\n\n            flashPromise['default'](destroy, _this2);\n          })();\n        }\n      },\n\n      searchEmployees: function searchEmployees(query, deferred) {\n        if (Ember['default'].isBlank(query.term)) {\n          deferred.resolve([]);\n        } else {\n          this.store.query('employee', {\n            name: query.term,\n            location_id: this.get('currentLocation.id'),\n            except: this.get('model.id'),\n            prefix: true\n          }).then(deferred.resolve, deferred.reject);\n        }\n      },\n\n      cancel: function cancel() {\n        this.transitionToRoute('employees');\n      }\n    }\n  });\n\n});","define('garaje/employee/model', ['exports', 'ember', 'ember-data'], function (exports, Ember, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    name: DS['default'].attr('string'),\n    email: DS['default'].attr('string'),\n    phoneNumber: DS['default'].attr('string'),\n    createdAt: DS['default'].attr('date'),\n    location: DS['default'].belongsTo('location', { async: true }),\n    assistant: DS['default'].belongsTo('employee', { async: true }),\n    employee: DS['default'].hasMany('employee', { async: true, inverse: 'assistant' }),\n    ccEmployee: DS['default'].attr('boolean'),\n\n    firstCharacter: Ember['default'].computed('name', function () {\n      return this.get('name').charAt(0).toUpperCase();\n    }),\n    css: ''\n  });\n\n});","define('garaje/employee/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    integrationsManager: Ember['default'].inject.service(),\n\n    titleToken: function titleToken() {\n      return this.controller.get('model.name');\n    },\n\n    setupController: function setupController(controller, model) {\n      this._super(controller, model);\n      controller.set('validated', false);\n    }\n  });\n\n});","define('garaje/employee/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 30,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 39,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/employee/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"select-2\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.assistant\",[\"loc\",[null,[32,12],[32,27]]]]],[],[]],\"optionLabelPath\",\"name\",\"id\",\"_employee-assistant\",\"allowClear\",true,\"placeholder\",\"No assistant\",\"query\",\"searchEmployees\"],[\"loc\",[null,[31,6],[38,8]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 41,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 49,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/employee/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"class\",\"checkbox\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"label\");\n          dom.setAttribute(el2,\"class\",\"toggle toggle--tiny\");\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        Also send notifications to \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n          morphs[1] = dom.createMorphAt(element2,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"class\",\"js-employeeCC\",\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.ccEmployee\",[\"loc\",[null,[44,64],[44,80]]]]],[],[]]],[\"loc\",[null,[44,10],[44,82]]]],\n          [\"content\",\"model.name\",[\"loc\",[null,[47,35],[47,49]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 60,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 62,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/employee/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--outlineFill js-employee-delete u-right\");\n            var el2 = dom.createTextNode(\"Cancel\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element1);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[61,13],[61,32]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 62,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 64,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/employee/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--redHoverFill js-employee-delete u-right\");\n            var el2 = dom.createTextNode(\"Delete\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element0);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"delete\"],[],[\"loc\",[null,[63,13],[63,32]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 58,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 66,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/employee/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"col col-6 right-align\");\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"model.isNew\",[\"loc\",[null,[60,14],[60,25]]]]],[],0,1,[\"loc\",[null,[60,8],[64,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": false,\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 70,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/employee/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"form\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h1\");\n        dom.setAttribute(el3,\"class\",\"py3 js-employee-meta\");\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"label\");\n        dom.setAttribute(el3,\"class\",\"employee-assistant\");\n        dom.setAttribute(el3,\"for\",\"_employee-assistant\");\n        var el4 = dom.createTextNode(\"Assistant (Receives notifications)\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"clearfix mt3\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element3 = dom.childAt(fragment, [0]);\n        var element4 = dom.childAt(element3, [1]);\n        var element5 = dom.childAt(element3, [3]);\n        var morphs = new Array(8);\n        morphs[0] = dom.createMorphAt(dom.childAt(element4, [1]),0,0);\n        morphs[1] = dom.createMorphAt(element4,3,3);\n        morphs[2] = dom.createMorphAt(element4,5,5);\n        morphs[3] = dom.createMorphAt(element4,7,7);\n        morphs[4] = dom.createMorphAt(element4,11,11);\n        morphs[5] = dom.createMorphAt(element4,13,13);\n        morphs[6] = dom.createMorphAt(dom.childAt(element5, [1]),1,1);\n        morphs[7] = dom.createMorphAt(element5,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"if\",[[\"get\",\"model.isNew\",[\"loc\",[null,[4,42],[4,53]]]],\"Add Employee\",[\"get\",\"model.name\",[\"loc\",[null,[4,69],[4,79]]]]],[],[\"loc\",[null,[4,37],[4,81]]]],\n        [\"inline\",\"labeled-input\",[],[\"inputClass\",\"js-employee-name\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"inputName\",[\"loc\",[null,[6,56],[6,65]]]]],[],[]],\"label\",\"Name\",\"autocomplete\",\"off\",\"errorLabel\",\"This is a Required Field\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.inputName\",[\"loc\",[null,[6,146],[6,162]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[6,173],[6,182]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"notEditable\",[\"loc\",[null,[6,192],[6,203]]]]],[],[]]],[\"loc\",[null,[6,4],[6,205]]]],\n        [\"inline\",\"email-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.email\",[\"loc\",[null,[9,10],[9,21]]]]],[],[]],\"label\",\"Email\",\"inputClass\",\"js-employee-email\",\"autocomplete\",\"off\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.email\",[\"loc\",[null,[13,14],[13,32]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[14,14],[14,23]]]]],[],[]],\"errorLabel\",\"Please Format Email Correctly\",\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"notEditable\",[\"loc\",[null,[16,13],[16,24]]]]],[],[]]],[\"loc\",[null,[8,4],[17,6]]]],\n        [\"inline\",\"phone-input\",[],[\"inputClass\",\"js-employee-phone-number\",\"phoneNumber\",[\"subexpr\",\"@mut\",[[\"get\",\"model.phoneNumber\",[\"loc\",[null,[21,16],[21,33]]]]],[],[]],\"label\",\"Mobile Number\",\"autocomplete\",\"off\",\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[24,14],[24,23]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.phoneNumber\",[\"loc\",[null,[25,14],[25,38]]]]],[],[]],\"defaultCountry\",[\"subexpr\",\"@mut\",[[\"get\",\"defaultCountry\",[\"loc\",[null,[26,19],[26,33]]]]],[],[]]],[\"loc\",[null,[19,4],[27,6]]]],\n        [\"block\",\"if\",[[\"get\",\"model.assistant.isFulfilled\",[\"loc\",[null,[30,10],[30,37]]]]],[],0,null,[\"loc\",[null,[30,4],[39,11]]]],\n        [\"block\",\"if\",[[\"get\",\"model.assistant\",[\"loc\",[null,[41,10],[41,25]]]]],[],1,null,[\"loc\",[null,[41,4],[49,11]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green js-employee-save\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[55,6],[55,122]]]],\n        [\"block\",\"unless\",[[\"get\",\"notEditable\",[\"loc\",[null,[58,14],[58,25]]]]],[],2,null,[\"loc\",[null,[58,4],[66,15]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/employees/controller', ['exports', 'ember', 'ember-group-by'], function (exports, Ember, groupBy) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n\n    groupedContent: groupBy['default']('sortedNamesDesc', 'firstCharacter', { sortProperties: ['name'] }),\n    queryParams: ['name', 'page'],\n    page: 1,\n    name: '',\n    totalPages: Ember['default'].computed.alias('model.meta.total_pages'),\n    employeesCount: Ember['default'].computed.alias('model.meta.total'),\n    googleSyncManager: Ember['default'].inject.service(),\n\n    namesSorting: ['name'],\n    sortedNamesDesc: Ember['default'].computed.sort('model', 'namesSorting'),\n\n    isLoading: false,\n\n    hasActiveQueryParams: Ember['default'].computed.notEmpty('name'),\n\n    hasEmployees: Ember['default'].computed.gt('employeesCount', 0),\n    hasSearch: Ember['default'].computed.notEmpty('name'),\n    showEmployeesInfo: Ember['default'].computed.or('hasEmployees', 'hasSearch', 'isLoading'),\n\n    updateSearchTerm: function updateSearchTerm() {\n      if (!this.get('isDestroyed') && !this.get('isDestroying')) {\n        this.setProperties({\n          page: 1,\n          name: this.get('searchTerm')\n        });\n      }\n    },\n\n    searchTerm: Ember['default'].computed('name', {\n      get: function get() {\n        return this.get('name');\n      },\n      set: function set(k, v) {\n        this.send('searchTermChanged');\n\n        return v;\n      }\n    }),\n\n    hasMorePages: Ember['default'].computed('page', 'totalPages', function () {\n      return this.get('page') < this.get('totalPages');\n    }),\n\n    actions: {\n\n      incrementCurrentPage: function incrementCurrentPage() {\n        if (this.get('hasMorePages') && !this.get('isLoading')) {\n          this.incrementProperty('page');\n        }\n      },\n\n      resetSearch: function resetSearch() {\n        this.set('searchTerm', '');\n      },\n\n      searchTermChanged: function searchTermChanged() {\n        Ember['default'].run.debounce(this, 'updateSearchTerm', 500);\n      }\n\n    }\n\n  });\n\n});","define('garaje/employees/index/route', ['exports', 'ember', 'garaje/mixins/reset-scroll'], function (exports, Ember, ResetScroll) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], {\n    resetController: function resetController(controller, isExiting) {\n      if (isExiting) {\n        this.send('resetQueryParams');\n      }\n    }\n  });\n\n});","define('garaje/employees/index/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 3,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/employees/index/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"mx-auto center mt4 js-emptyState\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"emptyImage empty-employees empty-employees--directory\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/employees/nav/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 8,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 12,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/employees/nav/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"mr1 p1 h6 uppercase grayDark\");\n            var el2 = dom.createTextNode(\"\\n          Last sync: \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"currentLocation.company.syncedSince\",[\"loc\",[null,[10,21],[10,60]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 15,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/employees/nav/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"isSyncing mr1 p1 h6 uppercase\");\n            var el2 = dom.createTextNode(\"Syncing\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 15,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/employees/nav/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"mr1 p1 h6 uppercase\");\n            var el2 = dom.createTextNode(\"Sync Now\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element0);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"sync\"],[\"bubbles\",false],[\"loc\",[null,[16,39],[16,70]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 19,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/employees/nav/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[2] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"currentLocation.company.employeesLastSyncAt\",[\"loc\",[null,[8,12],[8,55]]]]],[],0,null,[\"loc\",[null,[8,6],[12,13]]]],\n          [\"block\",\"if\",[[\"get\",\"currentLocation.company.synchronizing\",[\"loc\",[null,[13,12],[13,49]]]]],[],1,2,[\"loc\",[null,[13,6],[17,13]]]],\n          [\"inline\",\"link-to\",[\"Sync Settings\",\"sync-settings\"],[\"class\",\"mr1 p1 h6 uppercase\"],[\"loc\",[null,[18,6],[18,77]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 19,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 22,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/employees/nav/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Import Employees\",\"import\"],[\"class\",\"bg-lighten-2 rounded mr1 px1 py05 grayLight h6 uppercase\"],[\"loc\",[null,[20,6],[20,110]]]],\n          [\"inline\",\"link-to\",[\"Add Employee Manually\",\"new-employee\"],[\"class\",\"bg-lighten-2 rounded mr1 px1 py05 grayLight h6 uppercase js-add-employee\"],[\"loc\",[null,[21,6],[21,137]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 24,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/employees/nav/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"header\");\n        dom.setAttribute(el1,\"class\",\"border-top bg-grayLightest\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"nav\");\n        dom.setAttribute(el2,\"class\",\"flex flex-center p1\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"flex-auto\");\n        var el4 = dom.createTextNode(\" \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element1 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(element1,1,1);\n        morphs[1] = dom.createMorphAt(element1,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"link-to\",[\"Directory\",\"employees\",[\"subexpr\",\"query-params\",[],[\"name\",\"\"],[\"loc\",[null,[3,38],[3,60]]]]],[\"class\",\"mr1 p1 h6 uppercase\"],[\"loc\",[null,[3,4],[3,90]]]],\n        [\"block\",\"if\",[[\"get\",\"currentLocation.company.directorySyncProvider\",[\"loc\",[null,[7,10],[7,55]]]]],[],0,1,[\"loc\",[null,[7,4],[22,11]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/employees/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Employees',\n    integrationsManager: Ember['default'].inject.service(),\n\n    queryParams: {\n      name: {\n        refreshModel: true\n      },\n      page: {\n        refreshModel: true\n      }\n    },\n\n    model: function model(params) {\n      var employeesController = this.controllerFor('employees');\n      params.location_id = this.get('currentLocation.id');\n      params.page = employeesController.get('page');\n      employeesController.set('isLoading', true);\n\n      return this.store.query('employee', params);\n    },\n\n    setupController: function setupController(controller, model) {\n      var existingModel = controller.get('model');\n\n      if (!existingModel) {\n        controller.set('page', 1);\n      }\n\n      if (existingModel && controller.get('page') > 1) {\n        existingModel.pushObjects(model.mapBy('_internalModel'));\n        this._super(controller, existingModel);\n      } else {\n        this._super(controller, model);\n      }\n\n      controller.set('isLoading', false);\n    },\n\n    renderTemplate: function renderTemplate(controller) {\n      this._super();\n      this.render('employees/nav', {\n        outlet: 'subnav',\n        controller: controller\n      });\n    },\n\n    activate: function activate() {\n      this._super();\n\n      this.get('integrationsManager').loadIntegration(this.get('currentLocation.company'));\n\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('application').set('employeesActive', true);\n      });\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.controllerFor('application').set('employeesActive', false);\n    },\n\n    actions: {\n\n      error: function error(_error) {\n        if (_error.status === 404) {\n          this.transitionTo('employees');\n        } else {\n          Ember['default'].onerror(_error);\n          return true;\n        }\n      },\n\n      resetQueryParams: function resetQueryParams() {\n        this.get('controller').setProperties({\n          page: 1,\n          name: '',\n          searchTerm: ''\n        });\n      }\n    }\n  });\n\n});","define('garaje/employees/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 7,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/employees/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"numberOfEmployees js-number-of-employees\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" matching '\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"'\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n            morphs[2] = dom.createMorphAt(fragment,5,5,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"employeesCount\",[\"loc\",[null,[6,65],[6,83]]]],\n            [\"inline\",\"pluralized-word\",[[\"get\",\"employeesCount\",[\"loc\",[null,[6,109],[6,123]]]],\"Employee\",false],[],[\"loc\",[null,[6,91],[6,142]]]],\n            [\"content\",\"name\",[\"loc\",[null,[6,153],[6,161]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 7,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 9,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/employees/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"numberOfEmployees js-number-of-employees\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"employeesCount\",[\"loc\",[null,[8,65],[8,83]]]],\n            [\"inline\",\"pluralized-word\",[[\"get\",\"employeesCount\",[\"loc\",[null,[8,109],[8,123]]]],\"Employee\",false],[],[\"loc\",[null,[8,91],[8,142]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 27,\n                      \"column\": 16\n                    },\n                    \"end\": {\n                      \"line\": 31,\n                      \"column\": 16\n                    }\n                  },\n                  \"moduleName\": \"garaje/employees/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                  \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"div\");\n                  dom.setAttribute(el1,\"class\",\"employeeList-assistant\");\n                  var el2 = dom.createTextNode(\"\\n                    Assistant: \");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createComment(\"\");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n                  return morphs;\n                },\n                statements: [\n                  [\"content\",\"item.assistant.name\",[\"loc\",[null,[29,31],[29,54]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 25,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 32,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/employees/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(2);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"item.name\",[\"loc\",[null,[26,16],[26,29]]]],\n                [\"block\",\"if\",[[\"get\",\"item.assistant\",[\"loc\",[null,[27,22],[27,36]]]]],[],0,null,[\"loc\",[null,[27,16],[31,23]]]]\n              ],\n              locals: [],\n              templates: [child0]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 23,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 34,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/employees/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"dd\");\n              dom.setAttribute(el1,\"class\",\"employeeList-employee\");\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"link-to\",[\"employee\",[\"get\",\"item\",[\"loc\",[null,[25,36],[25,40]]]]],[\"tabindex\",\"-1\"],0,null,[\"loc\",[null,[25,14],[32,26]]]]\n            ],\n            locals: [\"item\"],\n            templates: [child0]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 21,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 35,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/employees/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dt\");\n            dom.setAttribute(el1,\"class\",\"mx2 mt2 py1 border-bottom bold blue\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"group.value\",[\"loc\",[null,[22,58],[22,73]]]],\n            [\"block\",\"each\",[[\"get\",\"group.items\",[\"loc\",[null,[23,18],[23,29]]]]],[\"key\",\"@index\"],0,null,[\"loc\",[null,[23,10],[34,19]]]]\n          ],\n          locals: [\"group\"],\n          templates: [child0]\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 35,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 39,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/employees/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dt\");\n            dom.setAttribute(el1,\"class\",\"mx2 mt1 py1 border-bottom bold\");\n            var el2 = dom.createTextNode(\"No matches found\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dd\");\n            dom.setAttribute(el1,\"class\",\"employeeList-employee\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dd\");\n            dom.setAttribute(el1,\"class\",\"employeeList-employee\");\n            var el2 = dom.createElement(\"a\");\n            var el3 = dom.createTextNode(\"Reset Search\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [5, 0]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element1);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"resetSearch\"],[],[\"loc\",[null,[38,47],[38,71]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"multiple-nodes\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 55,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/employees/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"py3 px1 border-bottom clearfix flex flex-center\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"col col-6\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"h2\");\n          dom.setAttribute(el3,\"class\",\"js-employee-count-header\");\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"col col-6 pr1 right-align\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"clearfix flex\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"border-right\");\n          dom.setAttribute(el2,\"style\",\"width:300px\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"dl\");\n          dom.setAttribute(el3,\"class\",\"employeeList\");\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"px3 flex-auto\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"md-col-10 lg-col-8 mx-auto\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var element3 = dom.childAt(element2, [3]);\n          var element4 = dom.childAt(fragment, [3]);\n          var element5 = dom.childAt(element4, [1, 1]);\n          var morphs = new Array(6);\n          morphs[0] = dom.createMorphAt(dom.childAt(element2, [1, 1]),1,1);\n          morphs[1] = dom.createMorphAt(element3,1,1);\n          morphs[2] = dom.createMorphAt(element3,3,3);\n          morphs[3] = dom.createMorphAt(element5,1,1);\n          morphs[4] = dom.createMorphAt(element5,3,3);\n          morphs[5] = dom.createMorphAt(dom.childAt(element4, [3, 1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"hasActiveQueryParams\",[\"loc\",[null,[5,14],[5,34]]]]],[],0,1,[\"loc\",[null,[5,8],[9,15]]]],\n          [\"inline\",\"search-loader\",[],[\"isLoading\",[\"subexpr\",\"@mut\",[[\"get\",\"isLoading\",[\"loc\",[null,[13,32],[13,41]]]]],[],[]]],[\"loc\",[null,[13,6],[13,43]]]],\n          [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"searchTerm\",[\"loc\",[null,[14,20],[14,30]]]]],[],[]],\"class\",\"pageSearch rounded border p1 icon-search\",\"placeholder\",\"Search employees\",\"type\",\"search\"],[\"loc\",[null,[14,6],[14,126]]]],\n          [\"block\",\"each\",[[\"get\",\"groupedContent\",[\"loc\",[null,[21,16],[21,30]]]]],[\"key\",\"@index\"],2,3,[\"loc\",[null,[21,8],[39,17]]]],\n          [\"inline\",\"load-more\",[],[\"class\",\"load-more\",\"isDisabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isDisabled\",[\"loc\",[null,[42,19],[42,29]]]]],[],[]],\"hasMorePages\",[\"subexpr\",\"@mut\",[[\"get\",\"hasMorePages\",[\"loc\",[null,[43,21],[43,33]]]]],[],[]],\"action\",\"incrementCurrentPage\"],[\"loc\",[null,[40,8],[44,39]]]],\n          [\"content\",\"outlet\",[\"loc\",[null,[50,8],[50,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 61,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 63,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/employees/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"link-to\",[\"Sync employees\",\"sync-settings\"],[\"class\",\"btn btn--blue my2 block\"],[\"loc\",[null,[62,6],[62,82]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 63,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 68,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/employees/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"p\");\n            dom.setAttribute(el1,\"class\",\"my2\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(element0,1,1);\n            morphs[1] = dom.createMorphAt(element0,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"link-to\",[\"Import employees\",\"import\"],[\"class\",\"btn btn--blue mt3\"],[\"loc\",[null,[65,8],[65,73]]]],\n            [\"inline\",\"link-to\",[\"Add employees manually\",\"new-employee\"],[\"class\",\"btn btn--blue mt3\"],[\"loc\",[null,[66,8],[66,85]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 55,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 72,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/employees/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mx-auto center mt4 js-emptyState\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"emptyImage empty-employees\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h2\");\n          dom.setAttribute(el2,\"class\",\"mt3\");\n          var el3 = dom.createTextNode(\"Populate your employee directory\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"h4 grayDark m1 col-6 mx-auto\");\n          var el3 = dom.createTextNode(\"You can sync employees from a directory service like Google Apps, import a CSV of employee data, or add employees manually.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          dom.setAttribute(el2,\"class\",\"h4 block mt2\");\n          dom.setAttribute(el2,\"href\",\"https://help.envoy.co/getting-started/set-up-your-employee-directory\");\n          dom.setAttribute(el2,\"target\",\"_blank\");\n          var el3 = dom.createTextNode(\"Learn more about the employee directory\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),7,7);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"currentLocation.company.hasDirectorySync\",[\"loc\",[null,[61,10],[61,50]]]]],[],0,1,[\"loc\",[null,[61,4],[68,11]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 72,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/employees/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"showEmployeesInfo\",[\"loc\",[null,[1,6],[1,23]]]]],[],0,1,[\"loc\",[null,[1,0],[72,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/helpers/and', ['exports', 'ember', 'ember-truth-helpers/helpers/and'], function (exports, Ember, and) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(and.andHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(and.andHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/array-to-sentence', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports.arrayToSentence = arrayToSentence;\n\n  var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\n  function arrayToSentence(arr) {\n    arr = Ember['default'].makeArray(arr).compact();\n\n    if (arr.length === 2) {\n      return arr.join(' and ');\n    } else {\n      var last = arr.pop();\n      var rest = arr.length ? arr.join(', ') : null;\n      return [rest, last].compact().join(', and ');\n    }\n  }\n\n  exports['default'] = Ember['default'].Helper.helper(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 1);\n\n    var arr = _ref2[0];\n\n    return arrayToSentence(arr);\n  });\n\n});","define('garaje/helpers/capitalize-word', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\n  exports['default'] = Ember['default'].Helper.helper(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 1);\n\n    var input = _ref2[0];\n\n    return input.capitalize();\n  });\n\n});","define('garaje/helpers/eq', ['exports', 'ember', 'ember-truth-helpers/helpers/equal'], function (exports, Ember, equal) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(equal.equalHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(equal.equalHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/format-hour-minute', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\n  /* exported format */\n\n  var format = function format(ms) {\n\n    if (isNaN(ms) || ms === null || typeof ms === 'undefined') {\n      return \"\";\n    }\n\n    var date = new Date(ms);\n    var h = date.getHours();\n    var m = date.getMinutes();\n\n    if (h < 10) {\n      h = \"0\" + h;\n    }\n\n    if (m < 10) {\n      m = \"0\" + m;\n    }\n\n    return h + \":\" + m;\n  };\n\n  exports['default'] = Ember['default'].Helper.helper(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 1);\n\n    var ms = _ref2[0];\n\n    return format(ms);\n  });\n\n  exports.format = format;\n\n});","define('garaje/helpers/formatted-currency', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports.formattedCurrency = formattedCurrency;\n\n  function numberWithCommas(x) {\n    return ('' + x).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n  }\n\n  function numberWithoutZeroCents(x) {\n    return x.replace(/.00$/, '');\n  }\n\n  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round\n  function decimalAdjust(type, value, exp) {\n    // If the exp is undefined or zero...\n    if (typeof exp === 'undefined' || +exp === 0) {\n      return Math[type](value);\n    }\n    value = +value;\n    exp = +exp;\n    // If the value is not a number or the exp is not an integer...\n    if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\n      return NaN;\n    }\n    // Shift\n    value = value.toString().split('e');\n    value = Math[type](+(value[0] + 'e' + (value[1] ? +value[1] - exp : -exp)));\n    // Shift back\n    value = value.toString().split('e');\n    return +(value[0] + 'e' + (value[1] ? +value[1] + exp : exp));\n  }\n\n  function round10(value, exp) {\n    return decimalAdjust('round', value, exp);\n  }\n\n  /**\n    Formats a number into a currency string. It commafies\n    numbers, prepends the $ sign, and rounds up fractional\n    values to the nearest cent.\n\n    @method formattedCurrency\n    @param {Number|String} input the number\n    @param {Boolean} [removeZeroCents=false] option to remove trailing cents if they are .00\n    @return {String} the formatted number as currency\n  */\n\n  function formattedCurrency(input, removeZeroCents) {\n    var parsed = parseFloat(input, 10);\n    var formatted = round10(Math.abs(parsed), -2).toFixed(2);\n    if (Ember['default'].isEmpty(input) || isNaN(formatted)) {\n      return '';\n    }\n    var number = '$' + numberWithCommas(formatted);\n    if (parsed < 0) {\n      number = '(' + number + ')';\n    }\n    return removeZeroCents === true ? numberWithoutZeroCents(number) : number;\n  }\n\n  exports['default'] = Ember['default'].Helper.helper(function (params) {\n    return formattedCurrency.apply(this, params);\n  });\n\n});","define('garaje/helpers/gt', ['exports', 'ember', 'ember-truth-helpers/helpers/gt'], function (exports, Ember, gt) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(gt.gtHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(gt.gtHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/gte', ['exports', 'ember', 'ember-truth-helpers/helpers/gte'], function (exports, Ember, gte) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(gte.gteHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(gte.gteHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/is-array', ['exports', 'ember', 'ember-truth-helpers/helpers/is-array'], function (exports, Ember, is_array) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(is_array.isArrayHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(is_array.isArrayHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/lt', ['exports', 'ember', 'ember-truth-helpers/helpers/lt'], function (exports, Ember, lt) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(lt.ltHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(lt.ltHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/lte', ['exports', 'ember', 'ember-truth-helpers/helpers/lte'], function (exports, Ember, lte) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(lte.lteHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(lte.lteHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/moment-duration', ['exports', 'ember-moment/helpers/moment-duration'], function (exports, moment_duration) {\n\n\t'use strict';\n\n\n\n\texports['default'] = moment_duration['default'];\n\n});","define('garaje/helpers/moment-format', ['exports', 'ember', 'garaje/config/environment', 'ember-moment/helpers/moment-format'], function (exports, Ember, config, Helper) {\n\n  'use strict';\n\n  exports['default'] = Helper['default'].extend({\n    globalOutputFormat: Ember['default'].get(config['default'], 'moment.outputFormat'),\n    globalAllowEmpty: !!Ember['default'].get(config['default'], 'moment.allowEmpty')\n  });\n\n});","define('garaje/helpers/moment-from-now', ['exports', 'ember', 'garaje/config/environment', 'ember-moment/helpers/moment-from-now'], function (exports, Ember, config, Helper) {\n\n  'use strict';\n\n  exports['default'] = Helper['default'].extend({\n    globalAllowEmpty: !!Ember['default'].get(config['default'], 'moment.allowEmpty')\n  });\n\n});","define('garaje/helpers/moment-to-now', ['exports', 'ember', 'garaje/config/environment', 'ember-moment/helpers/moment-to-now'], function (exports, Ember, config, Helper) {\n\n  'use strict';\n\n  exports['default'] = Helper['default'].extend({\n    globalAllowEmpty: !!Ember['default'].get(config['default'], 'moment.allowEmpty')\n  });\n\n});","define('garaje/helpers/not-eq', ['exports', 'ember', 'ember-truth-helpers/helpers/not-equal'], function (exports, Ember, not_equal) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(not_equal.notEqualHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(not_equal.notEqualHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/not', ['exports', 'ember', 'ember-truth-helpers/helpers/not'], function (exports, Ember, not) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(not.notHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(not.notHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/or', ['exports', 'ember', 'ember-truth-helpers/helpers/or'], function (exports, Ember, or) {\n\n  'use strict';\n\n  var forExport = null;\n\n  if (Ember['default'].Helper) {\n    forExport = Ember['default'].Helper.helper(or.orHelper);\n  } else if (Ember['default'].HTMLBars.makeBoundHelper) {\n    forExport = Ember['default'].HTMLBars.makeBoundHelper(or.orHelper);\n  }\n\n  exports['default'] = forExport;\n\n});","define('garaje/helpers/pluralized-word', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports.pluralizedWord = pluralizedWord;\n\n  function pluralizedWord(count, singular, includeCount) {\n    count = parseInt(count, 10);\n    var word = count === 1 ? singular : Ember['default'].String.pluralize(singular);\n    return includeCount === false ? word : count + ' ' + word;\n  }\n\n  exports['default'] = Ember['default'].Helper.helper(function (params) {\n    return pluralizedWord.apply(this, params);\n  });\n\n});","define('garaje/helpers/with-fallback', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports.withFallback = withFallback;\n\n  function withFallback(input, fallback) {\n    return Ember['default'].isBlank(input) ? fallback : input;\n  }\n\n  exports['default'] = Ember['default'].Helper.helper(function (params) {\n    return withFallback.apply(this, params);\n  });\n\n});","define('garaje/import/controller', ['exports', 'ember', 'garaje/utils/flash-promise', 'garaje/utils/url-builder'], function (exports, Ember, flashPromise, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    isProcessing: false,\n    parsedObjects: null,\n    originalFile: null,\n\n    actions: {\n      toggleProcessing: function toggleProcessing() {\n        this.toggleProperty('isProcessing');\n      },\n      handleCsvResults: function handleCsvResults(contents, originalFile) {\n        this.set('originalFile', originalFile);\n        var formattedArray = [];\n        contents.data.forEach(function (datum) {\n          var object = { name: datum[0], email: datum[1], phone: datum[2] };\n          formattedArray.pushObject(object);\n        });\n        this.set('parsedObjects', formattedArray);\n      },\n      uploadCsvToServer: function uploadCsvToServer() {\n        var self = this;\n\n        var UploaderFactory = this.container.lookupFactory('util:uploader');\n        var uploader = UploaderFactory.create({\n          url: urlBuilder['default'].v1.employeesUploadUrl()\n        });\n\n        var promise = uploader.upload(this.get('originalFile'), { location_id: this.get('currentLocation.id') });\n\n        promise.then(function () {\n          self.transitionToRoute('employees');\n          self.set('parsedObjects', null);\n        }, function (error) {\n          // don't transition\n          throw error;\n        });\n\n        flashPromise['default'](promise, this);\n      }\n    }\n  });\n\n});","define('garaje/import/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Import Employees',\n\n    activate: function activate() {\n      this._super();\n      //running in next run loop to avoid active getting removed by ember default behavior when coming from employees\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('application').set('employeesActive', true);\n      });\n    },\n\n    renderTemplate: function renderTemplate(controller) {\n      this._super();\n      this.render('employees/nav', {\n        outlet: 'subnav',\n        controller: controller\n      });\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.controllerFor('application').set('employeesActive', false);\n    }\n  });\n\n});","define('garaje/import/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 9,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/import/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"loading\"],[],[\"loc\",[null,[8,8],[8,29]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/import/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"class\",\"align-middle\");\n          dom.setAttribute(el1,\"src\",\"assets/images/csv-upload.svg\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 47,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 53,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/import/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"tr\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n            morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n            morphs[2] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"object.name\",[\"loc\",[null,[49,16],[49,31]]]],\n            [\"content\",\"object.email\",[\"loc\",[null,[50,16],[50,32]]]],\n            [\"content\",\"object.phone\",[\"loc\",[null,[51,16],[51,32]]]]\n          ],\n          locals: [\"object\"],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 34,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 57,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/import/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mt3 rounded p3 bg-yellow-10 center\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h2\");\n          var el3 = dom.createTextNode(\"Review your employee list carefully\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"py2\");\n          var el3 = dom.createTextNode(\"If you see any mistakes or wish to make changes, upload an updated CSV file.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          dom.setAttribute(el2,\"class\",\"btn btn--green\");\n          var el3 = dom.createTextNode(\"Import \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"table\");\n          dom.setAttribute(el2,\"class\",\"mt3 left-align table-light\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"tr\");\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"th\");\n          var el5 = dom.createTextNode(\"Full Name\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"th\");\n          var el5 = dom.createTextNode(\"Email Address\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"th\");\n          var el5 = dom.createTextNode(\"Phone Number\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var element2 = dom.childAt(element1, [5]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createElementMorph(element2);\n          morphs[1] = dom.createMorphAt(element2,1,1);\n          morphs[2] = dom.createMorphAt(dom.childAt(element1, [7]),3,3);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"uploadCsvToServer\"],[],[\"loc\",[null,[38,9],[38,39]]]],\n          [\"inline\",\"pluralized-word\",[[\"get\",\"parsedObjects.length\",[\"loc\",[null,[38,88],[38,108]]]],\"Employee\"],[],[\"loc\",[null,[38,70],[38,121]]]],\n          [\"block\",\"each\",[[\"get\",\"parsedObjects\",[\"loc\",[null,[47,16],[47,29]]]]],[],0,null,[\"loc\",[null,[47,8],[53,17]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 58,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/import/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"border-bottom clearfix flex flex-center px2\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6 py3\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        var el5 = dom.createTextNode(\"Import Employees\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6 right-align\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"mt3 px2 clearfix flex\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-6 bg-blue-10 rounded flex flex-center mr3\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"uploadButton mx-auto\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.setAttribute(el6,\"class\",\"btn btn--small btn--blue cursor-pointer\");\n        var el7 = dom.createTextNode(\"Select CSV file...\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-6\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"h5\");\n        var el6 = dom.createTextNode(\"Upload a CSV to mass import or replace your \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"strong\");\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\" employees. \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"https://help.envoy.co/api-and-integrations/employee-management-tool-integration/\");\n        dom.setAttribute(el6,\"target\",\"_blank\");\n        dom.setAttribute(el6,\"class\",\"help\");\n        dom.setAttribute(el6,\"tabindex\",\"-1\");\n        var el7 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"h5\");\n        var el6 = dom.createElement(\"strong\");\n        var el7 = dom.createTextNode(\"Tip:\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\" You can export a CSV from your ActiveDirectory or LDAP server, or create one manually. You might want to ask your HR department for this list.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"h5\");\n        var el6 = dom.createElement(\"strong\");\n        var el7 = dom.createTextNode(\"Automatic Sync:\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\" You can automatically sync employees from Google Apps through our \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\".\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h5\");\n        dom.setAttribute(el5,\"class\",\"py1\");\n        var el6 = dom.createTextNode(\"Syntax:\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"code\");\n        var el6 = dom.createElement(\"span\");\n        dom.setAttribute(el6,\"style\",\"color:#2211a6;\");\n        var el7 = dom.createTextNode(\"Full Name\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\", \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.setAttribute(el6,\"style\",\"color:#aa1151;\");\n        var el7 = dom.createTextNode(\"email@example.com\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\", \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.setAttribute(el6,\"style\",\"color:#117700;\");\n        var el7 = dom.createTextNode(\"(555) 555-5555\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"h5 mt1 grayDark\");\n        var el6 = dom.createTextNode(\"Email Address and Phone Number are optional.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element3 = dom.childAt(fragment, [0]);\n        var element4 = dom.childAt(element3, [3, 1]);\n        var element5 = dom.childAt(element4, [3]);\n        var morphs = new Array(5);\n        morphs[0] = dom.createMorphAt(dom.childAt(element3, [1, 3]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element4, [1, 1]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element5, [1, 1]),0,0);\n        morphs[3] = dom.createMorphAt(dom.childAt(element5, [5]),2,2);\n        morphs[4] = dom.createMorphAt(element3,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isProcessing\",[\"loc\",[null,[7,12],[7,24]]]]],[],0,1,[\"loc\",[null,[7,6],[11,13]]]],\n        [\"inline\",\"csv-parse\",[],[\"action\",\"handleCsvResults\",\"toggleProcessing\",\"toggleProcessing\"],[\"loc\",[null,[19,10],[19,85]]]],\n        [\"content\",\"currentLocation.nameWithCompanyName\",[\"loc\",[null,[24,74],[24,113]]]],\n        [\"inline\",\"link-to\",[\"Integrations Directory\",\"settings.integrations\"],[],[\"loc\",[null,[26,121],[26,181]]]],\n        [\"block\",\"if\",[[\"get\",\"parsedObjects\",[\"loc\",[null,[34,8],[34,21]]]]],[],2,null,[\"loc\",[null,[34,2],[57,9]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/initializers/active-model-adapter', ['exports', 'active-model-adapter', 'active-model-adapter/active-model-serializer'], function (exports, ActiveModelAdapter, ActiveModelSerializer) {\n\n  'use strict';\n\n  exports['default'] = {\n    name: 'active-model-adapter',\n    initialize: function initialize() {\n      var application = arguments[1] || arguments[0];\n      application.register('adapter:-active-model', ActiveModelAdapter['default']);\n      application.register('serializer:-active-model', ActiveModelSerializer['default']);\n    }\n  };\n\n});","define('garaje/initializers/container-debug-adapter', ['exports', 'ember-resolver/container-debug-adapter'], function (exports, ContainerDebugAdapter) {\n\n  'use strict';\n\n  exports['default'] = {\n    name: 'container-debug-adapter',\n\n    initialize: function initialize() {\n      var app = arguments[1] || arguments[0];\n\n      app.register('container-debug-adapter:main', ContainerDebugAdapter['default']);\n      app.inject('container-debug-adapter:main', 'namespace', 'application:main');\n    }\n  };\n\n});","define('garaje/initializers/current-admin-service', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports.initialize = initialize;\n\n  function initialize(container, application) {\n    application.inject('route', 'currentAdmin', 'service:current-admin');\n    application.inject('controller', 'currentAdmin', 'service:current-admin');\n  }\n\n  exports['default'] = {\n    name: 'current-admin-service',\n    initialize: initialize\n  };\n\n});","define('garaje/initializers/current-location-service', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports.initialize = initialize;\n\n  function initialize(container, application) {\n    application.inject('route', 'currentLocation', 'service:current-location');\n    application.inject('controller', 'currentLocation', 'service:current-location');\n  }\n\n  exports['default'] = {\n    name: 'current-location-service',\n    initialize: initialize\n  };\n\n});","define('garaje/initializers/ember-data-factory-guy', ['exports', 'ember', 'ember-data-factory-guy/factory-guy', 'ember-data-factory-guy/factory-guy-test-helper', 'garaje/config/environment'], function (exports, Ember, FactoryGuy, FactoryGuyTestHelper, config) {\n\n  'use strict';\n\n  exports['default'] = {\n    name: 'ember-data-factory-guy',\n    after: 'ember-data',\n\n    initialize: function initialize(registry, application) {\n      // ember 1.12+ no longer passing in container and application, but registry and application\n      // But make sure you are using ember-cli/ember-load-initializers#0.1.4\n      var container = registry._defaultContainer || application.__container__ || registry;\n      FactoryGuy['default'].setStore(container.lookup('service:store'));\n      FactoryGuyTestHelper['default'].set('container', container);\n      FactoryGuy['default'].resetDefinitions();\n\n      var prefix = config['default'].modulePrefix;\n      var factoryFileRegExp = new RegExp('^' + prefix + '/tests/factories');\n\n      Object.keys(requirejs._eak_seen).filter(function (key) {\n        return factoryFileRegExp.test(key);\n      }).forEach(function (moduleName) {\n        if (moduleName.match('.jshint')) {\n          // ignore autogenerated .jshint files\n          return;\n        }\n        if (moduleName.match('.jscs')) {\n          // ignore autogenerated .jscs files\n          return;\n        }\n        require(moduleName, null, null, true);\n      });\n    }\n  };\n\n});","define('garaje/initializers/ember-simple-auth', ['exports', 'ember', 'garaje/config/environment', 'ember-simple-auth/configuration', 'ember-simple-auth/initializers/setup-session-stores', 'ember-simple-auth/initializers/setup-session', 'ember-simple-auth/initializers/setup-session-service'], function (exports, Ember, ENV, Configuration, setupSessionStores, setupSession, setupSessionService) {\n\n  'use strict';\n\n  exports['default'] = {\n    name: 'ember-simple-auth',\n    initialize: function initialize(registry) {\n      var config = ENV['default']['ember-simple-auth'] || {};\n      config.baseURL = ENV['default'].baseURL;\n      Configuration['default'].load(config);\n\n      setupSessionStores['default'](registry);\n      setupSession['default'](registry);\n      setupSessionService['default'](registry);\n    }\n  };\n\n});","define('garaje/initializers/export-application-global', ['exports', 'ember', 'garaje/config/environment'], function (exports, Ember, config) {\n\n  'use strict';\n\n  exports.initialize = initialize;\n\n  function initialize() {\n    var application = arguments[1] || arguments[0];\n    if (config['default'].exportApplicationGlobal !== false) {\n      var value = config['default'].exportApplicationGlobal;\n      var globalName;\n\n      if (typeof value === 'string') {\n        globalName = value;\n      } else {\n        globalName = Ember['default'].String.classify(config['default'].modulePrefix);\n      }\n\n      if (!window[globalName]) {\n        window[globalName] = application;\n\n        application.reopen({\n          willDestroy: function willDestroy() {\n            this._super.apply(this, arguments);\n            delete window[globalName];\n          }\n        });\n      }\n    }\n  }\n\n  ;\n\n  exports['default'] = {\n    name: 'export-application-global',\n\n    initialize: initialize\n  };\n\n});","define('garaje/initializers/liquid-fire', ['exports', 'liquid-fire/router-dsl-ext', 'liquid-fire/ember-internals'], function (exports, __dep0__, ember_internals) {\n\n  'use strict';\n\n  // This initializer exists only to make sure that the following\n  // imports happen before the app boots.\n  ember_internals.registerKeywords();\n\n  exports['default'] = {\n    name: 'liquid-fire',\n    initialize: function initialize() {}\n  };\n\n});","define('garaje/initializers/load-google-maps', ['exports', 'garaje/config/environment'], function (exports, config) {\n\n  'use strict';\n\n  var initialize = function initialize(container, app) {\n    // don't run our app yet until google maps has had\n    // the change to load\n    app.deferReadiness();\n\n    window.googleMapsLoaded = function () {\n      app.advanceReadiness();\n    };\n\n    if (config['default'].environment === 'test') {\n      window.googleMapsLoaded();\n    } else {\n      var script = document.createElement('script');\n      script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&callback=googleMapsLoaded&sensor=true&libraries=places&key=' + config['default'].googleApiKey;\n      script.type = 'text/javascript';\n      document.getElementsByTagName(\"head\")[0].appendChild(script);\n    }\n  };\n\n  exports['default'] = {\n    name: 'load-google-maps',\n    initialize: initialize\n  };\n\n  exports.initialize = initialize;\n\n});","define('garaje/initializers/local-storage-service', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports.initialize = initialize;\n\n  function initialize(container, application) {\n    application.inject('controller', 'localStorage', 'service:local-storage');\n    application.inject('route', 'localStorage', 'service:local-storage');\n  }\n\n  exports['default'] = {\n    name: 'local-storage-service',\n    initialize: initialize\n  };\n\n});","define('garaje/initializers/reopen-textfield', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = {\n    name: 'reopen-textfield',\n\n    initialize: function initialize() {\n      Ember['default'].TextField.reopen({\n        attributeBindings: ['data-stripe']\n      });\n    }\n  };\n\n});","define('garaje/initializers/simple-auth-oauth2-access-token-authorizer', ['exports', 'garaje/authorizers/oauth2-access-token'], function (exports, Authorizer) {\n\n  'use strict';\n\n  exports['default'] = {\n    name: 'simple-auth-oauth2-access-token-authorizer',\n    before: 'ember-simple-auth',\n    initialize: function initialize(container) {\n      container.register('garaje-authorizer:oauth2-access-token', Authorizer['default']);\n    }\n  };\n\n});","define('garaje/initializers/subscription-service', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports.initialize = initialize;\n\n  function initialize(container, application) {\n    application.inject('route', 'subscription', 'service:subscription');\n    application.inject('controller', 'subscription', 'service:subscription');\n  }\n\n  exports['default'] = {\n    name: 'subscription-service',\n    initialize: initialize\n  };\n\n});","define('garaje/initializers/truth-helpers', ['exports', 'ember', 'ember-truth-helpers/utils/register-helper', 'ember-truth-helpers/helpers/and', 'ember-truth-helpers/helpers/or', 'ember-truth-helpers/helpers/equal', 'ember-truth-helpers/helpers/not', 'ember-truth-helpers/helpers/is-array', 'ember-truth-helpers/helpers/not-equal', 'ember-truth-helpers/helpers/gt', 'ember-truth-helpers/helpers/gte', 'ember-truth-helpers/helpers/lt', 'ember-truth-helpers/helpers/lte'], function (exports, Ember, register_helper, and, or, equal, not, is_array, not_equal, gt, gte, lt, lte) {\n\n  'use strict';\n\n  exports.initialize = initialize;\n\n  function initialize() /* container, application */{\n\n    // Do not register helpers from Ember 1.13 onwards, starting from 1.13 they\n    // will be auto-discovered.\n    if (Ember['default'].Helper) {\n      return;\n    }\n\n    register_helper.registerHelper('and', and.andHelper);\n    register_helper.registerHelper('or', or.orHelper);\n    register_helper.registerHelper('eq', equal.equalHelper);\n    register_helper.registerHelper('not', not.notHelper);\n    register_helper.registerHelper('is-array', is_array.isArrayHelper);\n    register_helper.registerHelper('not-eq', not_equal.notEqualHelper);\n    register_helper.registerHelper('gt', gt.gtHelper);\n    register_helper.registerHelper('gte', gte.gteHelper);\n    register_helper.registerHelper('lt', lt.ltHelper);\n    register_helper.registerHelper('lte', lte.lteHelper);\n  }\n\n  exports['default'] = {\n    name: 'truth-helpers',\n    initialize: initialize\n  };\n\n});","define('garaje/instance-initializers/active-model-adapter', ['exports', 'active-model-adapter', 'active-model-adapter/active-model-serializer'], function (exports, ActiveModelAdapter, ActiveModelSerializer) {\n\n  'use strict';\n\n  exports['default'] = {\n    name: 'active-model-adapter',\n    initialize: function initialize(applicationOrRegistry) {\n      var registry;\n      if (applicationOrRegistry.registry) {\n        // initializeStoreService was registered with an\n        // instanceInitializer. The first argument is the application\n        // instance.\n        registry = applicationOrRegistry.registry;\n      } else {\n        // initializeStoreService was called by an initializer instead of\n        // an instanceInitializer. The first argument is a registy. This\n        // case allows ED to support Ember pre 1.12\n        registry = applicationOrRegistry;\n      }\n\n      registry.register('adapter:-active-model', ActiveModelAdapter['default']);\n      registry.register('serializer:-active-model', ActiveModelSerializer['default']);\n    }\n  };\n\n});","define('garaje/instance-initializers/app-version', ['exports', 'garaje/config/environment', 'ember'], function (exports, config, Ember) {\n\n  'use strict';\n\n  var classify = Ember['default'].String.classify;\n  var registered = false;\n\n  exports['default'] = {\n    name: 'App Version',\n    initialize: function initialize(application) {\n      if (!registered) {\n        var appName = classify(application.toString());\n        Ember['default'].libraries.register(appName, config['default'].APP.version);\n        registered = true;\n      }\n    }\n  };\n\n});","define('garaje/instance-initializers/ember-simple-auth', ['exports', 'ember-simple-auth/instance-initializers/setup-session-restoration'], function (exports, setupSessionRestoration) {\n\n  'use strict';\n\n  exports['default'] = {\n    name: 'ember-simple-auth',\n    initialize: function initialize(instance) {\n      setupSessionRestoration['default'](instance);\n    }\n  };\n\n});","define('garaje/instance-initializers/error-reporting', ['exports', 'ember', 'ember-ajax/errors'], function (exports, Ember, errors) {\n\n  'use strict';\n\n  // http://eclips3.net/2014/08/07/ember-rsvp-errors-swallowed/\n  exports['default'] = {\n    name: 'error-reporting',\n\n    initialize: function initialize(instance) {\n      Ember['default'].onerror = function (error) {\n        if (console.group) {\n          console.group('Ember.onerror:');\n        }\n\n        console.info(error);\n\n        if (console.groupEnd) {\n          console.groupEnd();\n        }\n\n        //TODO-EMBER2-TEST\n        // migrating to ember-ajax errors\n        if (error instanceof errors.UnauthorizedError) {\n          instance.application.__container__.lookup('route:application').get('session').invalidate();\n\n          return false;\n        }\n\n        if (error.statusText && error.statusCode || error.jqXHR || error.message === 'Unauthorized' || error.message === 'Bad Request') {\n          // noop, we let jqxhr errors like 401 Unauthorized pass through\n          // so that ember-simple-auth can reauth\n        } else {\n            // rethrow error so that rollbar can report it\n            throw error;\n          }\n      };\n    }\n  };\n\n});","define('garaje/mixins/abortable-ajax', ['exports', 'ember', 'ember-data'], function (exports, Ember, DS) {\n\n  'use strict';\n\n  function parseResponseHeaders(headerStr) {\n    var headers = Object.create(null);\n    if (!headerStr) {\n      return headers;\n    }\n\n    var headerPairs = headerStr.split('\\r\\n');\n    for (var i = 0; i < headerPairs.length; i++) {\n      var headerPair = headerPairs[i];\n      // Can't use split() here because it does the wrong thing\n      // if the header value has the string \": \" in it.\n      var index = headerPair.indexOf(': ');\n      if (index > 0) {\n        var key = headerPair.substring(0, index);\n        var val = headerPair.substring(index + 2);\n        headers[key] = val;\n      }\n    }\n\n    return headers;\n  }\n\n  exports['default'] = Ember['default'].Mixin.create({\n    xhr: null,\n    ajax: function ajax(url, type, options) {\n      var adapter = this;\n\n      return new Ember['default'].RSVP.Promise(function (resolve, reject) {\n        var hash = adapter.ajaxOptions(url, type, options);\n\n        var xhr = adapter.get('xhr');\n\n        if (xhr) {\n          xhr.abort();\n        }\n\n        hash.success = function (json, textStatus, jqXHR) {\n          json = adapter.handleResponse(jqXHR.status, parseResponseHeaders(jqXHR.getAllResponseHeaders()), json);\n          if (json instanceof DS['default'].InvalidError) {\n            Ember['default'].run(null, reject, json);\n          } else {\n            Ember['default'].run(null, resolve, json);\n          }\n        };\n\n        hash.error = function (jqXHR) {\n          var err = adapter.normalizeErrorResponse(jqXHR.status, parseResponseHeaders(jqXHR.getAllResponseHeaders()), adapter.parseErrorResponse(jqXHR.responseText));\n          Ember['default'].run(null, reject, err);\n        };\n\n        adapter.set('xhr', Ember['default'].$.ajax(hash));\n      }, \"DS: RestAdapter#ajax \" + type + \" to \" + url);\n    }\n  });\n\n});","define('garaje/mixins/accent-color-handlers', ['exports', 'ember', 'garaje/utils/flash-promise'], function (exports, Ember, flashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    flashPromise: flashPromise['default'],\n\n    actions: {\n      setColor: function setColor() {\n        this.get('flashPromise')(this.get('location').save(), this);\n      }\n    }\n  });\n\n});","define('garaje/mixins/address-lookup', ['exports', 'ember', 'garaje/utils/geocode', 'garaje/utils/tzlookup'], function (exports, Ember, geocode, tzlookup) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    geocoder: geocode['default'],\n\n    geocodeErrorMap: Ember['default'].computed(function () {\n      var errorMap = {};\n      errorMap['ZERO_RESULTS'] = 'No results found for this address';\n      errorMap['OVER_QUERY_LIMIT'] = 'Maximum address lookup API reached, try again later';\n      errorMap['REQUEST_DENIED'] = 'Problem with lookup API, request denied';\n      errorMap['INVALID_REQUEST'] = 'Problem with lookup API, request invalid';\n      return errorMap;\n    }),\n\n    geocodeError: function geocodeError(errorCode) {\n      return this.get('geocodeErrorMap')[errorCode] || 'Unknown error ' + errorCode;\n    },\n\n    shouldDisplayMap: Ember['default'].computed('address', function () {\n      return window.google && !Ember['default'].isBlank(this.get('address'));\n    }),\n\n    updateAddress: function updateAddress() {\n      var inputAddress = this.get('inputAddress');\n\n      if (Ember['default'].isBlank(inputAddress)) {\n        return Ember['default'].RSVP.reject('Enter an address');\n      }\n\n      var self = this;\n      var properties = {};\n\n      return this.get('geocoder')(inputAddress).then(function (data) {\n        properties = {\n          latitude: data.latitude,\n          longitude: data.longitude,\n          address: inputAddress\n        };\n        if (self.get('overwriteInputAddress')) {\n          properties.inputAddress = data.address;\n        }\n\n        return tzlookup['default'](data.latitude, data.longitude);\n      }).then(function (data) {\n        properties.timezone = data.timeZoneId;\n      })['catch'](function (errorCode) {\n        throw self.geocodeError(errorCode);\n      })['finally'](function () {\n        self.setProperties(properties);\n      });\n    },\n\n    actions: {\n      fadeMap: function fadeMap() {\n        this.set('isEditingAddress', true);\n      },\n\n      unfadeMap: function unfadeMap() {\n        this.set('isEditingAddress', false);\n      }\n    }\n  });\n\n});","define('garaje/mixins/col-pick-on-change', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    _setupColpick: function _setupColpick() {\n      var layout = this.get('colpickLayout');\n      var colorScheme = this.get('colorScheme');\n\n      if (layout && colorScheme) {\n        var colpick = this._colpick = this.$().colpick({\n          layout: layout,\n          colorScheme: colorScheme,\n          submit: 0,\n          flat: this.get('flat'),\n          onChange: Ember['default'].run.bind(this, function (hsb, hex, rgb, el, bySetColor) {\n            this.set('previewValue', hex);\n\n            if (!bySetColor) {\n              this.set('value', hex);\n              this.sendAction('onChange');\n            }\n          }),\n          onHide: Ember['default'].run.bind(this, function () {\n            this.sendAction('onHide');\n          })\n        });\n\n        colpick.find('input[type=text]').keyup(function () {\n          var hexInputVal = this.value;\n          if (hexInputVal.length === 6) {\n            colpick.colpickSetColor(hexInputVal);\n          }\n        });\n\n        var value = this.get('value');\n        if (value) {\n          colpick.colpickSetColor(value);\n        }\n      }\n    }\n  });\n\n});","define('garaje/mixins/company-logo-handlers', ['exports', 'ember', 'garaje/utils/flash-promise'], function (exports, Ember, flashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    store: Ember['default'].inject.service(),\n\n    ipad: Ember['default'].inject.controller(),\n\n    flashPromise: flashPromise['default'],\n\n    messageBus: Ember['default'].inject.service(),\n\n    actions: {\n      setLogo: function setLogo(data) {\n        var store = this.get('store');\n        var payload = store.normalize('location', data.location);\n\n        store.push(payload);\n      },\n\n      deleteLogo: function deleteLogo() {\n        var location = this.get('location');\n        location.set('logo', null);\n        this.get('flashPromise')(location.save(), this);\n      },\n\n      expandWelcomeImage: function expandWelcomeImage() {\n        var _this = this;\n\n        this.transitionToRoute('ipad').then(function () {\n          // allow messageBus to install first on the component\n          // before triggering\n          Ember['default'].run.next(_this, function () {\n            this.get('messageBus').trigger('expandWelcomeImage');\n          });\n        });\n      },\n\n      expandSlideshow: function expandSlideshow() {\n        var _this2 = this;\n\n        this.transitionToRoute('ipad').then(function () {\n          Ember['default'].run.next(_this2, function () {\n            this.get('messageBus').trigger('expandSlideshow');\n          });\n        });\n      }\n    }\n  });\n\n});","define('garaje/mixins/droppable-upload', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var squashEvent = function squashEvent(event) {\n    event.preventDefault();\n    event.stopPropagation();\n  };\n\n  exports['default'] = Ember['default'].Mixin.create({\n    classNameBindings: ['isBeingDragged:drag-over'],\n\n    isBeingDragged: false,\n\n    drop: function drop(e) {\n      squashEvent(e);\n      var files = e.dataTransfer.files;\n      this.setProperties({\n        isBeingDragged: false,\n        files: files\n      });\n    },\n\n    dragEnter: squashEvent,\n\n    dragOver: function dragOver(e) {\n      squashEvent(e);\n      this.set('isBeingDragged', true);\n    },\n\n    dragLeave: function dragLeave(e) {\n      squashEvent(e);\n      this.set('isBeingDragged', false);\n    }\n  });\n\n});","define('garaje/mixins/editing-route', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    model: function model() {\n      var _this = this;\n\n      var location = this.get('currentLocation.content');\n      var routeName = this.get('routeName');\n      return location.get(routeName).then(function (model) {\n        return model || _this.store.createRecord(routeName, { location: location });\n      });\n    },\n\n    afterModel: function afterModel(model) {\n      model.set('isEditing', true);\n    },\n\n    activate: function activate() {\n      this.modelFor(this.get('routeName')).set('isEditing', true);\n    },\n\n    deactivate: function deactivate() {\n      this.controller.setProperties({\n        isEditing: false,\n        'model.isEditing': false\n      });\n    },\n\n    // This is a hack to get deactivate to fire\n    // when the route is refreshed, when we\n    // switch between locations\n    beforeModel: function beforeModel() {\n      if (this.controller) {\n        this.deactivate();\n      }\n    }\n  });\n\n});","define('garaje/mixins/highlight-changes', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var highlight = function highlight(_, property) {\n    var selector = '.js-' + property,\n        elements = Ember['default'].$(selector);\n\n    // cancels any currently running animation\n    elements.removeClass('updated');\n\n    // give it a tick\n    setTimeout(function () {\n      elements.addClass('updated').one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function (e) {\n        Ember['default'].$(e.target).removeClass('updated');\n      });\n    });\n  };\n\n  /**\n    fine-grained highlighting based on the property that got updated.\n    in the template, things that should highlight are given the class\n    js-<property name>\n  */\n  exports['default'] = Ember['default'].Mixin.create({\n    highlightProperties: Ember['default'].required(),\n\n    installObservers: Ember['default'].on('init', function () {\n      var properties = this.get('highlightProperties');\n      properties.forEach(function (property) {\n        Ember['default'].run(this, function () {\n          Ember['default'].addObserver(this, property, highlight);\n        });\n      }, this);\n    }),\n\n    willDestroy: function willDestroy() {\n      this._super();\n      var properties = this.get('highlightProperties');\n      properties.forEach(function (property) {\n        Ember['default'].removeObserver(this, property, highlight);\n      }, this);\n    }\n  });\n\n});","define('garaje/mixins/intercom-update', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    activate: function activate() {\n      this._super();\n      var appController = this.controllerFor('application');\n      if (window.Intercom && !appController.get('isBoss')) {\n        window.Intercom('update');\n      }\n    }\n  });\n\n});","define('garaje/mixins/multi-location-helpers', ['exports', 'ember', 'garaje/helpers/formatted-currency'], function (exports, Ember, formatted_currency) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    locations: Ember['default'].inject.service(),\n\n    isSubscribed: Ember['default'].computed.alias('subscription.isSubscribed'),\n\n    hasInsufficientCredits: Ember['default'].computed('subscriptionQuantity', 'requiredQuantity', function () {\n      return this.get('subscriptionQuantity') < this.get('requiredQuantity');\n    }),\n\n    subscriptionQuantity: Ember['default'].computed('subscription.quantity', function () {\n      return this.get('subscription.quantity') || 0;\n    }),\n\n    requiredQuantity: Ember['default'].computed('locations.active.[]', function () {\n      return this.get('locations.active.length') + 1;\n    }),\n\n    willChargeToAddOrActivateLocation: Ember['default'].computed.and('isSubscribed', 'hasInsufficientCredits'),\n\n    isMonthly: Ember['default'].computed.equal('subscription.period', 'monthly'),\n    isYearly: Ember['default'].computed.equal('subscription.period', 'yearly'),\n\n    currentPlan: Ember['default'].computed('subscription.plan', function () {\n      // TODO remove when we set up the association\n      return this.store.findRecord('plan', this.get('subscription.plan'));\n    }),\n\n    premiumPlan: Ember['default'].computed(function () {\n      return this.store.findRecord('plan', 'premium');\n    }),\n\n    isPlanChanging: Ember['default'].computed('isSubscribed', 'currentPlan', 'multiLocationPlan', function () {\n      return this.get('isSubscribed') && this.get('currentPlan') !== this.get('multiLocationPlan');\n    }),\n\n    isUpgradeRequired: Ember['default'].computed.and('willChargeToAddOrActivateLocation', 'isPlanChanging'),\n\n    multiLocationPlan: Ember['default'].computed('subscription.canHaveMultipleLocations', 'currentPlan', 'premiumPlan', 'requiredQuantity', function () {\n      if (this.get('subscription.canHaveMultipleLocations') || this.get('requiredQuantity') === 1) {\n        return this.get('currentPlan');\n      } else {\n        return this.get('premiumPlan');\n      }\n    }),\n\n    multiLocationPrice: Ember['default'].computed('isMonthly', 'isYearly', 'multiLocationPlan.{monthlyPrice,fullYearlyPrice}', function () {\n      if (this.get('isMonthly')) {\n        return formatted_currency.formattedCurrency(this.get('multiLocationPlan.monthlyPrice'), true) + '/mo';\n      } else {\n        return formatted_currency.formattedCurrency(this.get('multiLocationPlan.fullYearlyPrice'), true) + '/yr';\n      }\n    })\n  });\n\n});","define('garaje/mixins/reset-scroll', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    activate: function activate() {\n      this._super();\n      window.scrollTo(0, 0);\n    }\n  });\n\n});","define('garaje/mixins/segment-page-view', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    afterModel: function afterModel() {\n      var appController = this.controllerFor('application');\n      if (window.analytics && !appController.get('isBoss')) {\n        var currentPath = this.routeName.substr(10);\n        window.analytics.page(currentPath);\n      }\n    }\n  });\n\n});","define('garaje/mixins/slideshow-handlers', ['exports', 'ember', 'garaje/utils/url-builder', 'garaje/utils/flash-promise', 'garaje/utils/toggleable'], function (exports, Ember, urlBuilder, flashPromise, toggleable) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    ajax: Ember['default'].inject.service(),\n\n    onlyShowSlideshow: toggleable['default']('onlyShowSlideshow'),\n\n    actions: {\n      addSlideshow: function addSlideshow() {\n        var placeholder = this.store.createRecord('slideshow');\n        this.get('slideshows').addObject(placeholder);\n      },\n\n      finalizeSlideshow: function finalizeSlideshow(data) {\n        var slideshows = this.get('slideshows');\n\n        // find placeholder\n        var placeholder = slideshows.findBy('isNew');\n\n        // load in the real one\n        this.store.pushPayload('slideshow', data);\n        this.store.findRecord('slideshow', data.slideshow.id).then(function (slideshow) {\n          // do the switcheroo\n          var index = slideshows.indexOf(placeholder);\n          slideshows.replace(index, 1, [slideshow]);\n\n          // clean up\n          placeholder.deleteRecord();\n        });\n      },\n\n      removeSlideshow: function removeSlideshow(slideshow) {\n        var promise = slideshow.destroyRecord();\n\n        this._removeSlideshowPromises = this._removeSlideshowPromises || [];\n        this._removeSlideshowPromises.push(promise);\n\n        flashPromise['default'](promise, this);\n\n        Ember['default'].run.throttle(this, 'send', 'allSlideshowsRemoved', 2000, false);\n      },\n\n      allSlideshowsRemoved: function allSlideshowsRemoved() {\n        var _this = this;\n\n        Ember['default'].RSVP.all(this._removeSlideshowPromises).then(function () {\n          _this.send('refreshConfig');\n          _this._removeSlideshowPromises = [];\n        });\n      },\n\n      refreshConfig: function refreshConfig() {\n        // ping the backend to refresh the device config\n        this.get('ajax').request(urlBuilder['default'].v1.refreshConfigUrl(this.get('config.id')), { type: 'POST' });\n      },\n\n      setOnlyShowSlideshow: function setOnlyShowSlideshow(val) {\n        this.set('onlyShowSlideshow', val);\n      }\n    }\n  });\n\n});","define('garaje/mixins/sync-settings/all-filter', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    syncManager: Ember['default'].inject.service(),\n\n    isActive: Ember['default'].computed.equal('filter.type', 'unfiltered'),\n    neverSynced: Ember['default'].computed.equal('company.employeesSyncState', 'never'),\n\n    isDirty: Ember['default'].computed.or('filter.hasDirtyAttributes', 'neverSynced'),\n\n    setFilter: function setFilter() {\n      return this.get('syncManager').setFilter(this.get('company'), 'unfiltered');\n    },\n\n    _resetResults: Ember['default'].observer('isActive', function () {\n      if (!this.get('isActive')) {\n        this.set('search', null);\n      }\n    }),\n\n    actions: {\n      activate: function activate() {\n        if (!this.get('isActive')) {\n          this.set('filter.type', 'unfiltered');\n        }\n      },\n      save: function save() {\n        this.set('search', null);\n        this.attrs.save();\n      },\n      cancel: function cancel() {\n        this.get('filter').rollbackAttributes();\n      },\n      test: function test(callback) {\n        var _this = this;\n\n        this.sendAction('hideFlash');\n\n        var promise = this.get('syncManager').companyFilter(this.get('integration'), '').then(function (data) {\n          _this.set('search', {\n            results: data\n          });\n        }, function (response) {\n          _this.attrs.handleFailedQuery(response);\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      }\n    }\n  });\n\n});","define('garaje/mixins/sync-settings/object', ['exports', 'ember', 'garaje/utils/flash'], function (exports, Ember, flashMessage) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    syncManager: Ember['default'].inject.service(),\n    enabled: Ember['default'].computed.alias('integrationData.enabled'),\n    domain: Ember['default'].computed.alias('integrationData.domain'),\n    lastSyncAt: Ember['default'].computed.alias('company.employeesLastSyncAt'),\n    isInvalid: Ember['default'].computed.equal('company.employeesSyncState', 'errored'),\n    syncErrorMessage: Ember['default'].computed.alias('integrationData.errorMessage'),\n    filter: Ember['default'].computed.alias('company.employeesFilter'),\n\n    connected: Ember['default'].computed('integrationData.connected', {\n      get: function get() {\n        if (Object.keys(this.get('integrationData')).length !== 1) {\n          return this.get('integrationData.connected');\n        } else {\n          return true;\n        }\n      }\n    }),\n    fromNow: Ember['default'].computed.alias('company.syncedSince'),\n    actions: {\n      sync: function sync() {\n        return this.get('syncManager').sync(this.get('company').content);\n      },\n      handleFailedQuery: function handleFailedQuery(response) {\n        var msg = response.errors.join(', ');\n\n        if (msg) {\n          flashMessage['default'].call(this, 'error', 'Error: ' + msg);\n        }\n      },\n      showFlash: function showFlash(type, message) {\n        this.sendAction('showFlash', type, message);\n      },\n      hideFlash: function hideFlash() {\n        this.sendAction('hideFlash');\n      }\n    }\n  });\n\n});","define('garaje/mixins/welcome-image-handlers', ['exports', 'ember', 'garaje/utils/toggleable'], function (exports, Ember, toggleable) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Mixin.create({\n    store: Ember['default'].inject.service(),\n\n    welcomeImage: toggleable['default']('welcomeImage'),\n\n    actions: {\n      setWelcomeImage: function setWelcomeImage(data) {\n        var store = this.get('store');\n        store.push(store.normalize('config', {\n          id: data.config.id,\n          welcome_image: data.config.welcome_image\n        }));\n      },\n\n      deleteWelcomeImage: function deleteWelcomeImage() {\n        this.set('welcomeImage', null);\n      }\n    }\n  });\n\n});","define('garaje/models/admin-fragment', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    name: DS['default'].attr('string'),\n    email: DS['default'].attr('string'),\n    password: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/admin', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    name: DS['default'].attr('string'),\n    email: DS['default'].attr('string'),\n    phoneNumber: DS['default'].attr('string'),\n    password: DS['default'].attr('string'),\n    newPassword: DS['default'].attr('string'),\n    newPasswordConfirmation: DS['default'].attr('string'),\n    createdAt: DS['default'].attr(),\n    userHash: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/badge', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    location: DS['default'].belongsTo('location', { async: true }),\n\n    branding: DS['default'].attr('string'),\n    photo: DS['default'].attr('string'),\n    customField1: DS['default'].attr('string'),\n    customField2: DS['default'].attr('string'),\n\n    customField1LabelEnabled: DS['default'].attr('boolean'),\n    customField2LabelEnabled: DS['default'].attr('boolean'),\n\n    timeOfEntryEnabled: DS['default'].attr('boolean'),\n\n    customMessage: DS['default'].attr('string'),\n\n    css: DS['default'].attr('string'),\n    previewHTML: DS['default'].attr('string', { defaultValue: '' }),\n\n    defaultCSS: DS['default'].attr('string'),\n    defaultHTML: DS['default'].attr('string'),\n\n    samplePhotoPath: DS['default'].attr('string'),\n\n    customBadge: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/box', ['exports', 'ember-data', 'garaje/models/integration'], function (exports, DS, Integration) {\n\n  'use strict';\n\n  exports['default'] = Integration['default'].extend({\n    folder_id: DS['default'].attr('string'),\n    folderName: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/company', ['exports', 'ember-data', 'ember', 'moment'], function (exports, DS, Ember, moment) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    name: DS['default'].attr('string'),\n    slackConnected: DS['default'].attr('boolean', { defaultValue: false }),\n    gtalkEnabled: DS['default'].attr('boolean', { defaultValue: false }),\n    slackTeamName: DS['default'].attr('string'),\n    slackConnection: Ember['default'].computed('slackConnected', {\n      get: function get() {\n        var object = undefined;\n\n        if (this.get('slackConnected')) {\n          object = Ember['default'].Object.create({\n            id: this.get('id'),\n            slackTeamName: this.get('slackTeamName')\n          });\n        }\n\n        return object;\n      }\n    }).readOnly(),\n    hipchatConnected: DS['default'].attr('boolean', { defaultValue: false }),\n    onboardingStatus: DS['default'].attr('string'),\n    onboardingLocationsCount: DS['default'].attr('string'),\n    employeesLastSyncAt: DS['default'].attr('string'),\n    employeesSyncState: DS['default'].attr('string'),\n    saml: DS['default'].belongsTo('saml', {\n      async: true\n    }),\n    googleApp: DS['default'].belongsTo('google-app', { async: true }),\n    hipchatConnection: DS['default'].belongsTo('hipchat-connection', { async: true }),\n    iftttIntegration: DS['default'].belongsTo('ifttt-integration', { async: true }),\n    zapierIntegration: DS['default'].belongsTo('zapier-integration', { async: true }),\n    oneLogin: DS['default'].belongsTo('one-login', { async: true }),\n    salesforceIntegration: DS['default'].belongsTo('salesforce-integration', { async: true }),\n    oktaIntegration: DS['default'].belongsTo('okta-integration', {\n      async: true\n    }),\n    synchronizing: Ember['default'].computed('employeesSyncState', {\n      get: function get() {\n        var state = this.get('employeesSyncState');\n\n        return ['scheduled', 'synchronizing'].indexOf(state) >= 0;\n      }\n    }).readOnly(),\n    syncedSince: Ember['default'].computed('employeesLastSyncAt', {\n      get: function get() {\n        return moment['default'](this.get('employeesLastSyncAt')).fromNow();\n      }\n    }).readOnly(),\n    directorySyncProvider: Ember['default'].computed.or('oneLogin.content', 'googleApp.content', 'oktaIntegration.content'),\n    employeesFilter: Ember['default'].computed('googleApp', {\n      get: function get() {\n        var filter = false;\n        var integration = this.get('googleApp.content');\n\n        if (integration) {\n          filter = integration.get('filters');\n          filter.id = integration.get('id');\n\n          switch (filter.type) {\n            case 'locations':\n              filter.locations = filter.data;\n              break;\n            case 'company':\n              filter.query = filter.data.query;\n              break;\n          }\n\n          var store = this.get('store');\n\n          var employeeFilter = store.peekAll('employees-filter').get('firstObject');\n\n          if (employeeFilter) {\n            // Reset model so it doesn't show as dirty.\n\n            employeeFilter._internalModel.send('willCommit');\n            employeeFilter._internalModel._inFlightAttributes = employeeFilter._internalModel._attributes;\n            employeeFilter._internalModel._attributes = Object.create(null);\n            employeeFilter._internalModel.adapterDidCommit();\n          }\n\n          filter = store.push(store.normalize('employees-filter', filter));\n        }\n\n        return filter;\n      }\n    }).readOnly()\n  });\n\n});","define('garaje/models/config', ['exports', 'ember', 'ember-data', 'garaje/utils/nda-text'], function (exports, Ember, DS, ndaText) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    welcomeImage: DS['default'].attr('string'),\n    beenHereBefore: DS['default'].attr('boolean', { defaultValue: false }),\n    selfSignOut: DS['default'].attr('boolean', { defaultValue: false }),\n    slideshows: DS['default'].hasMany('slideshow', { async: true }),\n    onlyShowSlideshow: DS['default'].attr('boolean', { defaultValue: false }),\n    location: DS['default'].belongsTo('location', { async: true }),\n\n    integrations: DS['default'].hasMany('integration', { polymorphic: true, async: true }),\n\n    hasBoxIntegration: Ember['default'].computed('integrations.[]', function () {\n      return this.get('integrations').findBy('type', 'box');\n    }),\n\n    // delivery\n    acceptDeliveries: DS['default'].attr('boolean', { defaultValue: false }),\n    deliveryPerson: DS['default'].belongsTo('employee', { async: true }),\n\n    // ndas\n    hasNdaPage: DS['default'].attr('boolean', { defaultValue: false }),\n    ndaOptional: DS['default'].attr('boolean', { defaultValue: false }),\n    ndaBccEmail: DS['default'].attr('string'),\n    ndaBccEnabled: DS['default'].attr('boolean', { defaultValue: true }),\n    hasMultipleNda: DS['default'].attr('boolean', { defaultValue: false }),\n    ndaText: DS['default'].attr('string', { defaultValue: ndaText['default'] }),\n    ndaRequireResign: DS['default'].attr('boolean', { defaultValue: false }),\n    ndas: DS['default'].hasManyFragments('nda', { defaultValue: [] }),\n\n    // photos\n    hasPhotoPage: DS['default'].attr('boolean', { defaultValue: false }),\n\n    // special fields\n    hasEmail: DS['default'].attr('boolean', { defaultValue: true }),\n    hasPhone: DS['default'].attr('boolean', { defaultValue: true }),\n    emailRequired: DS['default'].attr('boolean', { defaultValue: true }),\n    phoneRequired: DS['default'].attr('boolean', { defaultValue: true }),\n\n    // custom fields\n    customFields: DS['default'].hasManyFragments('customField'),\n    localizedFields: DS['default'].hasManyFragments('localizedField')\n  });\n\n});","define('garaje/models/coupon', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    percentOff: DS['default'].attr('number'),\n    amountOff: DS['default'].attr('number')\n  });\n\n});","define('garaje/models/custom-field', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    dropdown: DS['default'].attr('boolean', { defaultValue: false }),\n    isTextarea: DS['default'].attr('boolean', { defaultValue: false }),\n    label: DS['default'].attr('string'),\n    options: DS['default'].hasManyFragments('dropdownOption'),\n    required: DS['default'].attr('boolean', { defaultValue: false }),\n    textOptions: DS['default'].attr('string'),\n    type: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/dropdown-option', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    value: DS['default'].attr('string', { defaultValue: '' })\n  });\n\n});","define('garaje/models/employee-filter', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    label: DS['default'].attr('string'),\n    name: DS['default'].attr('string'),\n    value: DS['default'].attr('string'),\n    locationId: DS['default'].attr('number'),\n    operation: DS['default'].attr('string', {\n      defaultValue: '='\n    })\n  });\n\n});","define('garaje/models/employees-filter', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    type: DS['default'].attr('string'),\n    query: DS['default'].attr('string'),\n    locations: DS['default'].attr()\n  });\n\n});","define('garaje/models/entry', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    fullName: DS['default'].attr('string'),\n    hostName: DS['default'].attr('string'),\n    agreementRefused: DS['default'].attr('boolean'),\n    signInTime: DS['default'].attr('date'),\n    signOutTime: DS['default'].attr('date'),\n    smsStatus: DS['default'].attr('string'),\n    emailStatus: DS['default'].attr('string'),\n    hipchatStatus: DS['default'].attr('string'),\n    slackStatus: DS['default'].attr('string'),\n    userData: DS['default'].hasManyFragments('userDatum'),\n    agreementLink: DS['default'].attr('string'),\n    thumbnails: DS['default'].hasOneFragment('thumbnail'),\n    originalNdaSignDate: DS['default'].attr('date'),\n    location: DS['default'].belongsTo('location', { async: true })\n  });\n\n});","define('garaje/models/google-app', ['exports', 'ember-data', 'ember'], function (exports, DS, Ember) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    connected: DS['default'].attr({\n      defaultValue: true\n    }),\n    company: DS['default'].belongsTo('company', { async: true }),\n    enabled: DS['default'].attr('boolean'),\n    email: DS['default'].attr('string'),\n    errorState: DS['default'].attr('string'),\n    errorMessage: DS['default'].attr('string'),\n    connectedBy: Ember['default'].computed.alias('email'),\n    createdAt: DS['default'].attr('string'),\n    filters: DS['default'].attr({\n      defaultValue: {\n        'type': 'unfiltered'\n      }\n    }),\n    lastSyncAt: DS['default'].attr('string'),\n    lastSyncSucceeded: DS['default'].attr('boolean'),\n    domain: Ember['default'].computed('email', {\n      get: function get() {\n        var email = this.get('email') || '';\n        return email.split('@')[1];\n      }\n    }).readOnly()\n  });\n\n});","define('garaje/models/hipchat-connection', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    connected: DS['default'].attr({\n      defaultValue: true\n    }),\n    company: DS['default'].belongsTo('company', { async: true }),\n    hipchatServerDomain: ''\n  });\n\n});","define('garaje/models/ifttt-integration', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    company: DS['default'].belongsTo('company', { async: true }),\n    granteeEmails: DS['default'].attr('string', { defaultValue: '' })\n  });\n\n});","define('garaje/models/integration', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    config: DS['default'].belongsTo('config'),\n    type: DS['default'].attr('string'),\n    folderId: DS['default'].attr('string'),\n    folderName: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/invite', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    fullName: DS['default'].attr('string'),\n    email: DS['default'].attr('string'),\n    inviterName: DS['default'].attr('string'),\n    expectedArrivalTime: DS['default'].attr('date'),\n    privateNotes: DS['default'].attr('string'),\n    location: DS['default'].belongsTo('location', { async: true }),\n    arrived: DS['default'].attr('boolean'),\n    entry: DS['default'].belongsTo('entry', { async: true }),\n    beenHereBefore: DS['default'].attr('boolean')\n  });\n\n});","define('garaje/models/leaderboard', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    employee: DS['default'].belongsTo('employee', { async: true }),\n    count: DS['default'].attr('number')\n  });\n\n});","define('garaje/models/localized-field', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    field: DS['default'].attr('string'),\n    localized: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/location', ['exports', 'ember-data', 'garaje/utils/url-builder', 'ember'], function (exports, DS, urlBuilder, Ember) {\n\n  'use strict';\n\n  var generateLink = function generateLink(linkFn, attribute) {\n    return function () {\n      var _this = this;\n\n      return this.get('ajax').request(linkFn.call(this, this.get('id')), { type: 'POST' }).then(function (data) {\n        var response = data;\n        var key = _this.container.lookup('serializer:application').keyForAttribute(attribute);\n        _this.set(attribute, response[key]);\n      });\n    };\n  };\n\n  exports['default'] = DS['default'].Model.extend({\n    ajax: Ember['default'].inject.service(),\n    // /settings/locations stuff\n    name: DS['default'].attr('string'),\n    primary: DS['default'].attr('boolean', { defaultValue: false }),\n    company: DS['default'].belongsTo('company', { async: true }),\n    admin: DS['default'].belongsTo('admin', { async: true }),\n    newAdmin: DS['default'].hasOneFragment('adminFragment'),\n    webhook: DS['default'].belongsTo('webhook', { async: true }),\n    badge: DS['default'].belongsTo('badge', { async: true }),\n    printer: DS['default'].belongsTo('printer', { async: true }),\n    saml: DS['default'].belongsTo('saml', {\n      async: true\n    }),\n    samlLocationId: DS['default'].attr('string'),\n    disabled: DS['default'].attr('boolean', { defaultValue: false }),\n    address: DS['default'].attr('string'),\n    addressLine_1: DS['default'].attr('string'),\n    addressLine_2: DS['default'].attr('string'),\n    city: DS['default'].attr('string'),\n    state: DS['default'].attr('string'),\n    zip: DS['default'].attr('string'),\n    country: DS['default'].attr('string'),\n    locale: DS['default'].attr('string'),\n    latitude: DS['default'].attr('number'),\n    longitude: DS['default'].attr('number'),\n    timezone: DS['default'].attr('string'),\n    logo: DS['default'].hasOneFragment('logo'),\n    color: DS['default'].attr('string', { defaultValue: 'c50000' }),\n    apiKey: DS['default'].attr('string'),\n    receptionist: DS['default'].hasOneFragment('receptionist'),\n    watchlist: DS['default'].hasOneFragment('watchlist', { defaultValue: { list: null, notifyEmail: null, notifyPhoneNumber: null } }),\n    pubnubCipherKey: DS['default'].attr('string'),\n    pubnubChannelEntry: DS['default'].attr('string'),\n    pubnubChannelInvite: DS['default'].attr('string'),\n    pubnubChannelIntegrations: DS['default'].attr('string'),\n\n    // Dashboard\n    invites: DS['default'].hasMany('invite', { async: true }),\n    entries: DS['default'].hasMany('entry', { async: true }),\n\n    // Host notification\n    emailNotificationEnabled: DS['default'].attr('boolean', { defaultValue: false }),\n    smsNotificationEnabled: DS['default'].attr('boolean', { defaultValue: false }),\n    slackNotificationEnabled: DS['default'].attr('boolean', { defaultValue: false }),\n    hipchatNotificationEnabled: DS['default'].attr('boolean', { defaultValue: false }),\n    hasNotificationEnabled: Ember['default'].computed.or('emailNotificationEnabled', 'smsNotificationEnabled', 'slackNotificationEnabled', 'hipchatNotificationEnabled'),\n\n    // Pre-registration\n    preRegistrationEnabled: DS['default'].attr('boolean', { defaultValue: false }),\n    ccReceptionistEnabled: DS['default'].attr('boolean', { defaultValue: false }),\n    sendNdaInvite: DS['default'].attr('boolean', { defaultValue: false }),\n\n    preRegistrationLink: DS['default'].attr('string'),\n    securityDeskLink: DS['default'].attr('string'),\n\n    preRegistrationNotes: DS['default'].attr('string'),\n\n    // /settings/forms stuff\n    config: DS['default'].belongsTo('config', { async: true }),\n\n    // ipad version\n    installedVersion: DS['default'].attr('string'),\n    currentVersion: DS['default'].attr('string'),\n\n    // Sorts primary locations above non-primary locations\n    sortablePrimary: Ember['default'].computed('primary', function () {\n      return this.get('primary') ? 0 : 1;\n    }),\n\n    generateApiKey: generateLink(urlBuilder['default'].v1.generateApiKeyUrl, 'apiKey'),\n    generatePreRegistrationLink: generateLink(urlBuilder['default'].v1.generatePreRegistrationLinkUrl, 'preRegistrationLink'),\n    generateSecurityDeskLink: generateLink(urlBuilder['default'].v1.generateSecurityDeskLinkUrl, 'securityDeskLink'),\n\n    // copy settings from existing location\n    masterLocationId: DS['default'].attr('string'),\n\n    // most common email domain\n    domain: DS['default'].attr('string'),\n\n    companyNameOverride: DS['default'].attr('string'),\n\n    companyName: Ember['default'].computed('company.name', 'companyNameOverride', 'primary', {\n      get: function get() {\n        if (Ember['default'].isBlank(this.get('companyNameOverride'))) {\n          return this.get('company.name');\n        } else {\n          return this.get('companyNameOverride');\n        }\n      },\n\n      set: function set(k, v) {\n        var newName = v;\n        if (typeof v === 'string') {\n          newName = newName.trim();\n        }\n\n        if (this.get('primary')) {\n          this.setProperties({\n            'company.name': newName,\n            'companyNameOverride': null\n          });\n        } else {\n          if (Ember['default'].isBlank(newName) || newName === this.get('company.name')) {\n            newName = null;\n          }\n          this.set('companyNameOverride', newName);\n        }\n\n        return newName;\n      }\n    }),\n\n    nameWithCompanyName: Ember['default'].computed('companyName', 'company.name', 'name', {\n      get: function get() {\n        var name = this.get('name');\n        var companyName = this.get('companyName');\n\n        if (Ember['default'].isBlank(companyName)) {\n          companyName = this.get('company.name');\n        }\n\n        return Ember['default'].isBlank(companyName) ? name : companyName + ' ' + name;\n      }\n    }).readOnly()\n  });\n\n});","define('garaje/models/logo', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    url: DS['default'].attr('string'),\n    smallUrl: DS['default'].attr('string'),\n    thumbUrl: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/nda', ['exports', 'ember-data', 'garaje/utils/nda-text'], function (exports, DS, ndaText) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    name: DS['default'].attr('string'),\n    body: DS['default'].attr('string', { defaultValue: ndaText['default'] }),\n    skippable: DS['default'].attr('boolean', { defaultValue: false }),\n    requireResign: DS['default'].attr('boolean', { defaultValue: false }),\n    updated_at: DS['default'].attr('date')\n  });\n\n});","define('garaje/models/okta-integration', ['exports', 'ember-data', 'ember'], function (exports, DS, Ember) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    createdAt: DS['default'].attr('string'),\n    errorState: DS['default'].attr('string'),\n    errorMessage: DS['default'].attr('string'),\n    company: DS['default'].belongsTo('company', {\n      async: true\n    }),\n    enabled: DS['default'].attr('boolean', {\n      defaultValue: true\n    }),\n    domain: DS['default'].attr('string'),\n    token: DS['default'].attr('string'),\n    filterType: DS['default'].attr('string', {\n      defaultValue: 'unfiltered'\n    }),\n    filters: DS['default'].hasManyFragments('employee-filter', {\n      defaultValue: []\n    }),\n    companyFilters: Ember['default'].computed.filter('filters', function (filter) {\n      return !filter.get('locationId');\n    }),\n    locationFilters: Ember['default'].computed.filter('filters', function (filter) {\n      return filter.get('locationId');\n    })\n  });\n\n});","define('garaje/models/one-login', ['exports', 'ember-data', 'ember'], function (exports, DS, Ember) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    apiKey: DS['default'].attr('string'),\n    company: DS['default'].belongsTo('company', { async: true }),\n    enabled: DS['default'].attr('boolean', {\n      defaultValue: true\n    }),\n    createdAt: DS['default'].attr('string'),\n    errorState: DS['default'].attr('string'),\n    errorMessage: DS['default'].attr('string'),\n    filterType: DS['default'].attr('string', {\n      defaultValue: 'unfiltered'\n    }),\n    filters: DS['default'].hasManyFragments('employee-filter', {\n      defaultValue: []\n    }),\n    companyFilters: Ember['default'].computed.filter('filters', function (filter) {\n      return !filter.get('locationId');\n    }),\n    locationFilters: Ember['default'].computed.filter('filters', function (filter) {\n      return filter.get('locationId');\n    })\n  });\n\n});","define('garaje/models/payment', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    date: DS['default'].attr('date'),\n    amount: DS['default'].attr('number'),\n    pdf: DS['default'].attr('string'),\n    status: DS['default'].attr('string'),\n    refunded: DS['default'].attr('boolean'),\n    amountRefunded: DS['default'].attr('number')\n  });\n\n});","define('garaje/models/plan', ['exports', 'ember-data', 'ember'], function (exports, DS, Ember) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    name: DS['default'].attr('string'),\n    monthlyPrice: DS['default'].attr('number'),\n    yearlyPrice: DS['default'].attr('number'),\n    isMultiLocationDisabled: Ember['default'].computed.equal('id', 'standard'),\n\n    fullYearlyPrice: Ember['default'].computed('yearlyPrice', function () {\n      return this.get('yearlyPrice') * 12;\n    })\n  });\n\n});","define('garaje/models/printer', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    ip: DS['default'].attr('string'),\n    enabled: DS['default'].attr('boolean', { defaultValue: true }),\n    location: DS['default'].belongsTo('location', { async: true })\n  });\n\n});","define('garaje/models/receptionist', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    name: DS['default'].attr('string'),\n    email: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/salesforce-integration', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    company: DS['default'].belongsTo('company', { async: true }),\n    salesforceUserId: DS['default'].attr('string'),\n    salesforceAccessGrantId: DS['default'].attr('number')\n  });\n\n});","define('garaje/models/saml', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    fingerprint: DS['default'].attr('string'),\n    url: DS['default'].attr('string'),\n    company: DS['default'].belongsTo('company', { async: true })\n  });\n\n});","define('garaje/models/slideshow', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    url: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/subscription', ['exports', 'ember-data', 'ember', 'garaje/utils/contains-computed', 'moment'], function (exports, DS, Ember, containsComputed, moment) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    trialEndDate: DS['default'].attr('date'),\n    stripeToken: DS['default'].attr('string'),\n    plan: DS['default'].attr('string'),\n    period: DS['default'].attr('string'),\n    quantity: DS['default'].attr('number'),\n    coupon: DS['default'].hasOneFragment('coupon'),\n    last4: DS['default'].attr('string'),\n    brand: DS['default'].attr('string'),\n    expiryMonth: DS['default'].attr('number'),\n    expiryYear: DS['default'].attr('number'),\n    delinquent: DS['default'].attr('boolean', { defaultValue: false }),\n    periodStart: DS['default'].attr('number'),\n    periodEnd: DS['default'].attr('number'),\n    creditBalance: DS['default'].attr('number'),\n    features: DS['default'].attr({ defaultValue: ['location_switcher'] }),\n    procurementSource: DS['default'].attr('string'),\n    referral: DS['default'].attr('string', { defaultValue: '' }),\n\n    name: Ember['default'].computed('plan', function () {\n      var plan = this.get('plan');\n      return plan && plan.capitalize();\n    }),\n\n    isSubscribed: Ember['default'].computed('period', 'plan', function () {\n      return !Ember['default'].isBlank(this.get('period')) && !Ember['default'].isBlank(this.get('plan'));\n    }),\n\n    isCCPresent: Ember['default'].computed.notEmpty('last4'),\n\n    trialDaysLeft: Ember['default'].computed('trialEndDate', function () {\n      var currentDate = new Date(),\n          trialEndDate = this.get('trialEndDate') || currentDate;\n\n      return Math.max(Math.ceil(moment['default'](trialEndDate).diff(currentDate, 'days', true)), 0);\n    }),\n\n    hasTrialDaysLeft: Ember['default'].computed.gt('trialDaysLeft', 0),\n\n    premiumFeatureBadgeVisible: containsComputed['default']('features', 'premium_feature_bar'),\n\n    hasLocationSwitcher: containsComputed['default']('features', 'location_switcher'),\n\n    canAccessPreRegistration: containsComputed['default']('features', 'pre_registration'),\n\n    canAccessEventbrite: containsComputed['default']('features', 'eventbrite'),\n\n    canAccessCustomBadge: containsComputed['default']('features', 'custom_badge'),\n\n    canHaveMultipleLocations: containsComputed['default']('features', 'multi_location'),\n\n    canAccessBoss: containsComputed['default']('features', 'boss'),\n\n    canAccessBilling: containsComputed['default']('features', 'billing'),\n\n    canAccessSalesforce: containsComputed['default']('features', 'salesforce'),\n\n    isFreePlanEnabled: containsComputed['default']('features', 'free_plan'),\n\n    canCustomize: containsComputed['default']('features', 'customization'),\n\n    canEnableGoogleHangouts: containsComputed['default']('features', 'google_hangouts')\n  });\n\n});","define('garaje/models/thumbnail', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    big: DS['default'].attr('string'),\n    small: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/user-datum', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    field: DS['default'].attr('string'),\n    value: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/watchlist', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].ModelFragment.extend({\n    list: DS['default'].attr('string'),\n    notifyEmail: DS['default'].attr('string'),\n    notifyPhoneNumber: DS['default'].attr('string')\n  });\n\n});","define('garaje/models/webhook', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    url: DS['default'].attr('string'),\n    location: DS['default'].belongsTo('location', { async: true }),\n    enabled: DS['default'].attr('boolean', { defaultValue: true })\n  });\n\n});","define('garaje/models/zapier-integration', ['exports', 'ember-data'], function (exports, DS) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Model.extend({\n    company: DS['default'].belongsTo('company', { async: true }),\n    granteeEmails: DS['default'].attr('string'),\n    entryCreatedCount: DS['default'].attr('number'),\n    signOutCount: DS['default'].attr('number'),\n    inviteCreatedCount: DS['default'].attr('number')\n  });\n\n});","define('garaje/new-employee/route', ['exports', 'ember', 'garaje/mixins/reset-scroll'], function (exports, Ember, ResetScroll) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], {\n    controllerName: 'employee',\n    templateName: 'employee',\n    integrationsManager: Ember['default'].inject.service(),\n\n    activate: function activate() {\n      var _this = this;\n\n      return this.get('integrationsManager').loadIntegration(this.get('currentLocation.company')).then(function () {\n        if (_this.get('currentLocation.company.directorySyncProvider')) {\n          _this.transitionTo('employees.index');\n        }\n      });\n    },\n\n    model: function model() {\n      var location = this.get('currentLocation.content');\n      return this.store.createRecord('employee', { location: location });\n    },\n\n    setupController: function setupController(controller, model) {\n      this._super(controller, model);\n      controller.set('validated', false);\n      var employeesController = this.controllerFor('employees');\n      employeesController.incrementProperty('employeesCount');\n    },\n\n    deactivate: function deactivate() {\n      var model = this.controller.get('model');\n      if (model.get('isNew')) {\n        model.rollbackAttributes();\n        var employeesController = this.controllerFor('employees');\n        employeesController.decrementProperty('employeesCount');\n      }\n    }\n  });\n\n});","define('garaje/protected/onboarding/controller', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    application: Ember['default'].inject.controller(),\n    envoyIframeUrl: Ember['default'].computed.alias('application.envoyIframeUrl')\n  });\n\n});","define('garaje/protected/onboarding/employees/add-manual/controller', ['exports', 'ember', 'garaje/utils/onboarding-flash-promise'], function (exports, Ember, onboardingFlashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n\n    employees: [],\n\n    validated: false,\n\n    employeeNames: Ember['default'].computed.mapBy('employees', 'name'),\n\n    needsEmployee: Ember['default'].computed('employeeNames.[]', function () {\n      return this.get('employeeNames').every(function (name) {\n        return Ember['default'].isBlank(name);\n      });\n    }),\n\n    showError: Ember['default'].computed.and('validated', 'needsEmployee'),\n\n    actions: {\n      save: function save(callback) {\n        var _this = this;\n\n        var employeePromises = [];\n\n        if (this.get('needsEmployee')) {\n          this.set('validated', true);\n          return callback(Ember['default'].RSVP.reject());\n        }\n\n        this.get('employees').forEach(function (employee) {\n          if (!Ember['default'].isBlank(employee.get('name'))) {\n            employee.set('location', _this.get('currentLocation.content'));\n            var promise = employee.save();\n            employeePromises.push(promise);\n          } else {\n            employee.rollbackAttributes();\n          }\n        });\n\n        var promiseAll = Ember['default'].RSVP.all(employeePromises).then(function () {\n          _this.send('goToNextOnboardingStep', 'employees', callback);\n        })['catch'](function () {\n          callback(Ember['default'].RSVP.reject());\n        });\n\n        onboardingFlashPromise['default'](promiseAll, this);\n      },\n\n      addEmployeeField: function addEmployeeField() {\n        var newEmployee = this.store.createRecord('employee');\n        this.get('employees').pushObject(newEmployee);\n      }\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/employees/add-manual/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Add Employees',\n\n    setupController: function setupController(controller) {\n      var employees = controller.get('employees');\n      for (var i = 0; i < 3; i++) {\n        var newEmployee = this.store.createRecord('employee');\n        employees.push(newEmployee);\n      }\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/employees/add-manual/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 14,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 16,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/employees/add-manual/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 2,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"add-employee-table-row\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"employee\",[\"loc\",[null,[15,35],[15,43]]]]],[],[]],\"index\",[\"subexpr\",\"@mut\",[[\"get\",\"i\",[\"loc\",[null,[15,50],[15,51]]]]],[],[]],\"hasError\",[\"subexpr\",\"@mut\",[[\"get\",\"showError\",[\"loc\",[null,[15,61],[15,70]]]]],[],[]]],[\"loc\",[null,[15,4],[15,72]]]]\n        ],\n        locals: [\"employee\",\"i\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 24,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/employees/add-manual/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"md-col-10 lg-col-9 mx-auto mb3 center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h1\");\n        dom.setAttribute(el2,\"class\",\"mt2 mb3\");\n        var el3 = dom.createTextNode(\"Manually Add Employees\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"h5 grayDark\");\n        var el3 = dom.createTextNode(\"You can test out Envoy with just a few employees, and sync your full employee directory at a later time.\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"h5 grayDark\");\n        var el3 = dom.createTextNode(\"We recommend testing with folks from teams like operations/facilities, reception, IT, and HR. We only use employee contact information for notifications, never for extraneous emails or promotions.\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"table\");\n        dom.setAttribute(el1,\"class\",\"mt4\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"tr\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"th\");\n        var el4 = dom.createTextNode(\"Employee's Name\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"th\");\n        var el4 = dom.createTextNode(\"Work Email\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"th\");\n        var el4 = dom.createTextNode(\"Mobile Number\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"a\");\n        dom.setAttribute(el2,\"class\",\"btn btn--smaller btn--blue ml2\");\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"bold\");\n        var el4 = dom.createTextNode(\"+\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\" Add another employee\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"onboardingFooter p3 border-top bg-white mxn2 flex flex-center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"flex-auto\");\n        var el3 = dom.createTextNode(\"Next up: Customize your iPad\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [2]);\n        var element1 = dom.childAt(element0, [5]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(element0,3,3);\n        morphs[1] = dom.createElementMorph(element1);\n        morphs[2] = dom.createMorphAt(dom.childAt(fragment, [4]),3,3);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"employees\",[\"loc\",[null,[14,10],[14,19]]]]],[],0,null,[\"loc\",[null,[14,2],[16,11]]]],\n        [\"element\",\"action\",[\"addEmployeeField\"],[],[\"loc\",[null,[18,5],[18,34]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--medium btn--green\",\"default\",\"Continue\",\"pending\",\"Saving...\"],[\"loc\",[null,[23,2],[23,106]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/employees/import-csv/controller', ['exports', 'ember'], function (exports, Ember) {\n\n\t'use strict';\n\n\texports['default'] = Ember['default'].Controller.extend({});\n\n});","define('garaje/protected/onboarding/employees/import-csv/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Import Employees'\n\n  });\n\n});","define('garaje/protected/onboarding/employees/import-csv/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 10,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/employees/import-csv/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"md-col-10 lg-col-9 mx-auto mb3 center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h1\");\n        dom.setAttribute(el2,\"class\",\"mt2 mb3\");\n        var el3 = dom.createTextNode(\"Upload Employee Spreadsheet\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"h5 grayDark\");\n        var el3 = dom.createTextNode(\"Upload a CSV file to import your employees. You can export a CSV file from your ActiveDirectory or LDAP server, or create one manually. To enable email and SMS notifications, you’ll need to list employee email and mobile numbers.\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"onboardingFooter p3 border-top bg-white mxn2 flex flex-center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"flex-auto\");\n        var el3 = dom.createTextNode(\"Next up: Customize your iPad\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,2,2,contextualElement);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"employee-csv-uploader\",[],[\"goToNextOnboardingStep\",\"goToNextOnboardingStep\"],[\"loc\",[null,[6,0],[6,73]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/employees/index/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/utils/flash', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, flash, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Add Employees',\n\n    integrationsManager: Ember['default'].inject.service(),\n\n    actions: {\n      installGoogleApps: function installGoogleApps() {\n        var _this = this;\n\n        var company = this.get('currentLocation.company');\n        var integrationManager = this.get('integrationsManager');\n        integrationManager.connectGoogleApps(company).then(function () {\n          _this.transitionTo('protected.onboarding.employees.syncing');\n        })['catch'](function (response) {\n          switch (response.status) {\n            case integrationManager.GOOGLE_APPS_ERRORS.insufficientAccess:\n              var error = response.errors[0].messages.join('. ');\n\n              flash['default'].call(_this, 'onboardingError', 'Error: ' + error);\n              break;\n            default:\n              flash['default'].call(_this, 'onboardingError', 'Error: sorry, we couldn\\'t connect your account.');\n              break;\n          }\n        });\n      }\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/employees/index/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 20,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 25,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/employees/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mx-auto\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"img\");\n          dom.setAttribute(el2,\"src\",\"/assets/images/onboarding/add-employees-csv.png\");\n          dom.setAttribute(el2,\"class\",\"mr1 align-middle\");\n          dom.setAttribute(el2,\"style\",\"width:24px;height:24px\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      CSV Import\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 26,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 31,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/employees/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mx-auto\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"img\");\n          dom.setAttribute(el2,\"src\",\"/assets/images/onboarding/add-employees-manually.png\");\n          dom.setAttribute(el2,\"class\",\"mr1 align-middle\");\n          dom.setAttribute(el2,\"style\",\"width:24px;height:24px\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      Add Manually\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 36,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/employees/index/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"md-col-10 lg-col-9 mx-auto mb3 center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h1\");\n        dom.setAttribute(el2,\"class\",\"mt2 mb3\");\n        var el3 = dom.createTextNode(\"Add Employees\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"h5 grayDark\");\n        var el3 = dom.createTextNode(\"Add employees to enable our most-loved features: automatic host notifications and visitor pre-registration. We only use employee contact information for notifications, never for extraneous emails or promotions.\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"bold\");\n        var el3 = dom.createTextNode(\"How do you want to set up your Employee Directory? You can change your mind later.\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"flex mb3\");\n        dom.setAttribute(el1,\"style\",\"line-height:0;\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"bg-white border rounded cursor-pointer p2 mx1 center flex-auto\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"img\");\n        dom.setAttribute(el3,\"src\",\"/assets/images/integrations/logo-google.png\");\n        dom.setAttribute(el3,\"height\",\"40\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"md-col-10 lg-col-9 mx-auto center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"grayDark\");\n        var el3 = dom.createElement(\"b\");\n        var el4 = dom.createTextNode(\"Tip:\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\" If you prefer to import a spreadsheet of employees, click \\\"CSV Import.\\\" Or, if you’d rather just add a few test employees, click \\\"Add Employees Manually\\\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [2]);\n        var element1 = dom.childAt(element0, [1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createElementMorph(element1);\n        morphs[1] = dom.createMorphAt(element0,3,3);\n        morphs[2] = dom.createMorphAt(element0,4,4);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"installGoogleApps\"],[],[\"loc\",[null,[8,7],[8,37]]]],\n        [\"block\",\"link-to\",[\"protected.onboarding.employees.import-csv\"],[\"class\",\"bg-white border rounded cursor-pointer p2 mx1 center flex flex-center flex-auto js-import-csv\",\"tagName\",\"div\"],0,null,[\"loc\",[null,[20,2],[25,14]]]],\n        [\"block\",\"link-to\",[\"protected.onboarding.employees.add-manual\"],[\"class\",\"bg-white border rounded cursor-pointer p2 mx1 center flex flex-center flex-auto js-add-manually\",\"tagName\",\"div\"],1,null,[\"loc\",[null,[26,2],[31,14]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/employees/route', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    model: function model() {\n      return this.store.query('employee', { limit: 1, location_id: this.get('currentLocation.id') });\n    },\n\n    afterModel: function afterModel(model, transition) {\n      if (model.get('length')) {\n        return transition.send('goToNextOnboardingStep', 'employees');\n      }\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/employees/syncing/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Sync Employee Directory'\n\n  });\n\n});","define('garaje/protected/onboarding/employees/syncing/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 14,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/employees/syncing/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"md-col-10 lg-col-9 mx-auto mb3 center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h1\");\n        dom.setAttribute(el2,\"class\",\"mt2 mb3\");\n        var el3 = dom.createTextNode(\"Employee Directory Syncing\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"bg-white border rounded cursor-pointer p2 mx1 center\");\n        dom.setAttribute(el1,\"style\",\"line-height:0;\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"img\");\n        dom.setAttribute(el2,\"src\",\"/assets/images/integrations/logo-google.png\");\n        dom.setAttribute(el2,\"height\",\"40\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"h3\");\n        dom.setAttribute(el1,\"class\",\"mx-auto center mt3\");\n        var el2 = dom.createElement(\"span\");\n        dom.setAttribute(el2,\"class\",\"icon-checkmark\");\n        dom.setAttribute(el2,\"style\",\"width:1em;height:1em;margin-right:.15em;vertical-align:-3px\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\" Employees synced!\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"onboardingFooter p3 border-top bg-white mxn2 flex flex-center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"flex-auto\");\n        var el3 = dom.createTextNode(\"Next up: Customize your iPad\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"a\");\n        dom.setAttribute(el2,\"class\",\"btn btn--medium btn--green\");\n        var el3 = dom.createTextNode(\"Continue\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [2]);\n        var element1 = dom.childAt(fragment, [6, 3]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createElementMorph(element0);\n        morphs[1] = dom.createElementMorph(element1);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"installGoogleApps\"],[],[\"loc\",[null,[5,5],[5,35]]]],\n        [\"element\",\"action\",[\"goToNextOnboardingStep\",\"employees\"],[],[\"loc\",[null,[13,5],[13,52]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/employees/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 8,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/employees/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pageContainer\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"container px3\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"border rounded bg-grayLightest p3 mb3\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3, 1]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"onboarding-header\",[],[\"stepNumber\",2,\"totalSteps\",6],[\"loc\",[null,[2,2],[2,49]]]],\n        [\"content\",\"outlet\",[\"loc\",[null,[5,6],[5,16]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/equipment/envoy-in-a-box/controller', ['exports', 'ember', 'garaje/config/environment', 'garaje/mixins/address-lookup', 'garaje/utils/onboarding-flash-promise'], function (exports, Ember, config, AddressLookup, onboardingFlashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend(AddressLookup['default'], {\n    ajax: Ember['default'].inject.service(),\n\n    // TODO: get from server instead?\n    // mapping from product name to envoy-shop variant id\n    variantIdMap: {\n      'ipad-air-silver': 1,\n      'ipad-air-gray': 2,\n      'ipad-air2-gold': 3,\n      'printer': 4,\n      'atrest-red': 5,\n      'atrest-black': 6,\n      'atrest-white': 7,\n      'atrest-mint': 8,\n      'atrest-yellow': 9,\n      'atrest-green': 10,\n      'atrest-orange': 11,\n      'windfall-black': 12,\n      'windfall-white': 13,\n      'windfall-red': 14,\n      'windfall-yellow': 15,\n      'windfall-green': 16,\n      'windfall-orange': 17,\n      'mistand-silver': 18,\n      'mistand-black': 19\n    },\n\n    /*\n    This is required here is because broccoli-asset-rev will rename all asset\n    files with fingerprint, and it will replace all asset path in controllers,\n    if we generate the asset path in a dynamic manner, like\n         'foobar/{}-{}.png'.fmt(var1, var2)\n     the asset compiler cannot recognize it, therefore the URL will be wrong.\n    Another way to solve this problem is to load the asset map, like mentioned\n    in this issue\n       https://github.com/rickharrison/broccoli-asset-rev/issues/24\n     This is a quick fix, maybe we should use the asset map manner later\n    */\n    standImages: {\n      'windfall-black': 'assets/images/envoy-in-a-box/windfall-black.png',\n      'windfall-green': 'assets/images/envoy-in-a-box/windfall-green.png',\n      'windfall-orange': 'assets/images/envoy-in-a-box/windfall-orange.png',\n      'windfall-red': 'assets/images/envoy-in-a-box/windfall-red.png',\n      'windfall-white': 'assets/images/envoy-in-a-box/windfall-white.png',\n      'windfall-yellow': 'assets/images/envoy-in-a-box/windfall-yellow.png',\n      'atrest-black': 'assets/images/envoy-in-a-box/atrest-black.png',\n      'atrest-mint': 'assets/images/envoy-in-a-box/atrest-mint.png',\n      'atrest-orange': 'assets/images/envoy-in-a-box/atrest-orange.png',\n      'atrest-red': 'assets/images/envoy-in-a-box/atrest-red.png',\n      'atrest-white': 'assets/images/envoy-in-a-box/atrest-white.png',\n      'atrest-yellow': 'assets/images/envoy-in-a-box/atrest-yellow.png',\n      'mistand-black': 'assets/images/envoy-in-a-box/mistand-black.png',\n      'mistand-silver': 'assets/images/envoy-in-a-box/mistand-silver.png'\n    },\n\n    ipads: [{\n      name: 'Silver',\n      data: 'ipad-air-silver',\n      price: '$399',\n      imgPath: 'assets/images/envoy-in-a-box/ipad-air-silver.png'\n    }, {\n      name: 'Space Gray',\n      data: 'ipad-air-gray',\n      price: '$399',\n      imgPath: 'assets/images/envoy-in-a-box/ipad-air-gray.png'\n    }, {\n      name: 'Gold (Air 2)',\n      data: 'ipad-air2-gold',\n      price: '$499',\n      imgPath: 'assets/images/envoy-in-a-box/ipad-air-2-gold.png'\n    }],\n    selectedIpad: null,\n\n    standData: [{\n      name: 'Windfall',\n      data: 'windfall',\n      price: '$129',\n      variants: ['black', 'white', 'red', 'green', 'yellow', 'orange']\n    }, {\n      name: '@Rest',\n      data: 'atrest',\n      price: '$29',\n      variants: ['black', 'white', 'red', 'mint', 'yellow', 'orange']\n    }, {\n      name: 'MiStand',\n      data: 'mistand',\n      price: '$79',\n      variants: ['black', 'silver']\n    }],\n    stands: Ember['default'].computed('standData', 'selectedStandColors', function () {\n      var self = this;\n      var data = this.get('standData');\n      var selectedStandColors = this.get('selectedStandColors');\n      var stands = [];\n      data.forEach(function (stand) {\n        var selectedVariant = selectedStandColors[stand.data];\n        var variants = [];\n        stand.variants.forEach(function (variant) {\n          variants.push({\n            name: variant,\n            data: { product: stand.data, variant: variant },\n            inputData: '%@-%@'.fmt(stand.data, variant),\n            checked: selectedVariant === variant\n          });\n        });\n        var imgName = '%@-%@'.fmt(stand.data, selectedVariant);\n        stands.push({\n          name: stand.name,\n          data: stand.data,\n          price: stand.price,\n          variants: variants,\n          radioGroup: '%@-variant'.fmt(stand.data),\n          imgPath: self.standImages[imgName],\n          selectedVariant: selectedVariant,\n          // Notice: this is a hack, to keep stand description layout and design\n          // stuff in the template, this sucks, but it's a workaround for now\n          isWindfall: stand.data === 'windfall',\n          isAtrest: stand.data === 'atrest',\n          isMistand: stand.data === 'mistand'\n        });\n      });\n      return stands;\n    }),\n    selectedStandColors: {\n      windfall: 'black',\n      atrest: 'black',\n      mistand: 'black'\n    },\n    selectedStand: null,\n\n    selectedPrinter: true,\n\n    clearInputAddressErrorMessage: (function () {\n      this.set('inputAddressErrorMessage', null);\n    }).observes('inputAddress'),\n\n    // Validate input options and return the payload\n    validate: function validate() {\n      var self = this;\n      var errors = [];\n      var admin = this.get('currentAdmin');\n      var variantIdMap = this.get('variantIdMap');\n      var selectedIpad = this.get('selectedIpad');\n      var selectedStand = this.get('selectedStand');\n      var selectedStandColors = this.get('selectedStandColors');\n      var selectedPrinter = this.get('selectedPrinter');\n      var inputAddress = this.get('inputAddress');\n      var addressUnit = this.get('addressUnit');\n      var items = [];\n      if (selectedIpad) {\n        items.push({\n          variant_id: variantIdMap[selectedIpad],\n          quantity: 1\n        });\n      }\n      if (selectedStand) {\n        var standName = '%@-%@'.fmt(selectedStand, selectedStandColors[selectedStand]);\n        items.push({\n          variant_id: variantIdMap[standName],\n          quantity: 1\n        });\n      }\n      if (selectedPrinter) {\n        items.push({\n          variant_id: variantIdMap['printer'],\n          quantity: 1\n        });\n      }\n      if (Ember['default'].isBlank(inputAddress)) {\n        errors.push({\n          key: 'inputAddress',\n          msg: 'Enter an address'\n        });\n        this.set('inputAddressErrorMessage', 'Enter an address');\n      }\n      if (errors.length) {\n        return Ember['default'].RSVP.reject(errors);\n      }\n\n      return this.get('geocoder')(inputAddress)['catch'](function (errorCode) {\n        var msg = self.geocodeError(errorCode);\n        self.set('inputAddressErrorMessage', msg);\n        return Ember['default'].RSVP.reject();\n      }).then(function (data) {\n        var parsedInputAddress = data.parsedAddress;\n        parsedInputAddress.name = admin.get('name');\n        if (Ember['default'].isNone(parsedInputAddress.line1) || Ember['default'].isNone(parsedInputAddress.city) || Ember['default'].isNone(parsedInputAddress.country_code) || Ember['default'].isNone(parsedInputAddress.zip)) {\n          self.set('inputAddressErrorMessage', 'Invalid address');\n          return Ember['default'].RSVP.reject();\n        }\n        if (!Ember['default'].isNone(addressUnit)) {\n          parsedInputAddress.line2 = addressUnit;\n        }\n\n        var shippingAddress = parsedInputAddress;\n        var billingAddress = shippingAddress;\n        return {\n          // TODO: provide auth code\n          order: {\n            stripe_email: admin.get('email'),\n            configuration: 'envoy-in-a-box',\n            envoy_user_id: admin.get('id'),\n            shipping_address: shippingAddress,\n            billing_address: billingAddress,\n            items: items\n          }\n        };\n      });\n    },\n\n    // Generate variants\n    _generateVariants: function _generateVariants(name, colors, selected) {\n      var variants = [];\n      colors.forEach(function (color) {\n        var value = name + '-' + color;\n        variants.push({\n          name: name,\n          color: color,\n          value: value,\n          checked: value === selected\n        });\n      });\n      return variants;\n    },\n\n    actions: {\n      setIpadToNone: function setIpadToNone() {\n        this.set('selectedIpad', null);\n      },\n\n      setStandToNone: function setStandToNone() {\n        this.set('selectedStand', null);\n      },\n      setStandColor: function setStandColor(data) {\n        this.set('selectedStand', data.product);\n        var selectedStandColors = this.get('selectedStandColors');\n        selectedStandColors[data.product] = data.variant;\n        // TODO: maybe there is a better way to do this\n        // Notice: set a new object here, otherwise ember will think it's the same\n        // value, and will not trigger update for computed stuff\n        this.set('selectedStandColors', {\n          windfall: selectedStandColors.windfall,\n          atrest: selectedStandColors.atrest,\n          mistand: selectedStandColors.mistand\n        });\n      },\n\n      setSelectedPrinter: function setSelectedPrinter(data) {\n        this.set('selectedPrinter', data);\n      },\n\n      createOrder: function createOrder(callback) {\n        var self = this;\n        var promise = this.validate();\n\n        promise['catch'](function () {\n          callback(Ember['default'].RSVP.reject());\n        });\n\n        promise.then(function (payload) {\n          var postPromise = this.get('ajax').request('%@/api/orders'.fmt(config['default'].envoyShopBaseURL), {\n            type: 'POST',\n            data: JSON.stringify(payload)\n          });\n\n          // we put nested promose chain in this `then` callback, so validation\n          // error won't propagate down here and trigger onboardingFlashPromise\n          return postPromise.then(function () {\n            self.send('goToNextOnboardingStep', 'equipment', callback);\n          })['catch'](function (error) {\n            //TODO-EMBER2-TEST\n            console.log(error);\n            callback(Ember['default'].RSVP.reject());\n\n            var errorMessage = error.errorThrown || 'Unknown';\n            onboardingFlashPromise['default'](Ember['default'].RSVP.reject(errorMessage), self);\n          });\n        });\n      }\n    }\n  });\n\n});","define('garaje/protected/onboarding/equipment/envoy-in-a-box/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Envoy In A Box',\n    setupController: function setupController(controller) {\n      var currentLocation = this.get('currentLocation');\n      if (currentLocation) {\n        controller.set('inputAddress', currentLocation.get('address'));\n        controller.set('addressUnit', currentLocation.get('addressLine_2'));\n      }\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/equipment/envoy-in-a-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 17,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 21,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"img\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              dom.setAttribute(el1,\"class\",\"lighter\");\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element5 = dom.childAt(fragment, [1]);\n              var morphs = new Array(3);\n              morphs[0] = dom.createAttrMorph(element5, 'src');\n              morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n              morphs[2] = dom.createMorphAt(dom.childAt(fragment, [5]),0,0);\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"src\",[\"get\",\"ipad.imgPath\",[\"loc\",[null,[18,27],[18,39]]]]],\n              [\"content\",\"ipad.name\",[\"loc\",[null,[19,16],[19,29]]]],\n              [\"content\",\"ipad.price\",[\"loc\",[null,[20,38],[20,52]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 16,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 22,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"configurator-option\",[],[\"item\",[\"subexpr\",\"@mut\",[[\"get\",\"ipad\",[\"loc\",[null,[17,42],[17,46]]]]],[],[]],\"list\",[\"subexpr\",\"@mut\",[[\"get\",\"list\",[\"loc\",[null,[17,52],[17,56]]]]],[],[]]],0,null,[\"loc\",[null,[17,14],[21,38]]]]\n          ],\n          locals: [\"ipad\"],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 13,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 27,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h3\");\n          dom.setAttribute(el1,\"class\",\"configurator-header\");\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"configurator-header-number\");\n          var el3 = dom.createTextNode(\"1\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" Choose an iPad Air\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          var el2 = dom.createTextNode(\"\\n              I already have an iPad\\n            \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element6 = dom.childAt(fragment, [5]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(fragment,3,3,contextualElement);\n          morphs[1] = dom.createAttrMorph(element6, 'class');\n          morphs[2] = dom.createElementMorph(element6);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"each\",[[\"get\",\"ipads\",[\"loc\",[null,[16,20],[16,25]]]]],[],0,null,[\"loc\",[null,[16,12],[22,21]]]],\n          [\"attribute\",\"class\",[\"concat\",[\"configurator-option configurator-option--none configurator-noIpad \",[\"subexpr\",\"unless\",[[\"get\",\"selectedIpad\",[\"loc\",[null,[24,126],[24,138]]]],\"active\"],[],[\"loc\",[null,[24,117],[24,149]]]]]]],\n          [\"element\",\"action\",[\"setIpadToNone\"],[],[\"loc\",[null,[24,17],[24,43]]]]\n        ],\n        locals: [\"list\"],\n        templates: [child0]\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 36,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 41,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"label\");\n                var el2 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"input\");\n                dom.setAttribute(el2,\"type\",\"radio\");\n                dom.setAttribute(el2,\"class\",\"stand-color\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                      \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"span\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                    \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element0 = dom.childAt(fragment, [1]);\n                var element1 = dom.childAt(element0, [1]);\n                if (this.cachedFragment) { dom.repairClonedNode(element1,[],true); }\n                var morphs = new Array(5);\n                morphs[0] = dom.createAttrMorph(element0, 'class');\n                morphs[1] = dom.createAttrMorph(element1, 'checked');\n                morphs[2] = dom.createAttrMorph(element1, 'name');\n                morphs[3] = dom.createAttrMorph(element1, 'value');\n                morphs[4] = dom.createElementMorph(element1);\n                return morphs;\n              },\n              statements: [\n                [\"attribute\",\"class\",[\"get\",\"variant.name\",[\"loc\",[null,[37,35],[37,47]]]]],\n                [\"attribute\",\"checked\",[\"get\",\"variant.checked\",[\"loc\",[null,[38,72],[38,87]]]]],\n                [\"attribute\",\"name\",[\"get\",\"stand.radioGroup\",[\"loc\",[null,[38,97],[38,113]]]]],\n                [\"attribute\",\"value\",[\"get\",\"variant.inputData\",[\"loc\",[null,[38,124],[38,141]]]]],\n                [\"element\",\"action\",[\"setStandColor\",[\"get\",\"variant.data\",[\"loc\",[null,[38,169],[38,181]]]]],[],[\"loc\",[null,[38,144],[38,183]]]]\n              ],\n              locals: [\"variant\"],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 47,\n                      \"column\": 20\n                    },\n                    \"end\": {\n                      \"line\": 56,\n                      \"column\": 20\n                    }\n                  },\n                  \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                      \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"li\");\n                  var el2 = dom.createElement(\"a\");\n                  dom.setAttribute(el2,\"href\",\"http://hecklerdesign.com/product/kensington-clicksafe-cable-lock/\");\n                  dom.setAttribute(el2,\"target\",\"_blank\");\n                  var el3 = dom.createTextNode(\"ClickSafe Lock\");\n                  dom.appendChild(el2, el3);\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\" compatible\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes() { return []; },\n                statements: [\n\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 46,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 57,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"stand-description\",[],[\"maker\",\"Heckler Design\",\"featureOne\",\"Lockable to any desk\",\"featureTwo\",\"Heavy steel\",\"featureThree\",\"60° viewing angle\",\"featureFour\",\"180° swivel range\",\"featureFive\",\"Keeps your iPad secure\"],0,null,[\"loc\",[null,[47,20],[56,42]]]]\n              ],\n              locals: [],\n              templates: [child0]\n            };\n          }());\n          var child2 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 59,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 69,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"stand-description\",[],[\"maker\",\"Heckler Design\",\"featureOne\",\"Small & portable\",\"featureTwo\",\"Heavy steel\",\"featureThree\",\"60° + 30° viewing angles\",\"featureFour\",\"No rotation or swivel\",\"featureFive\",\"Ideal for low-security areas\",\"featureSix\",\"Cord channel for easy charging\"],[\"loc\",[null,[60,20],[68,22]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child3 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 71,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 81,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"stand-description\",[],[\"maker\",\"DesignMi\",\"featureOne\",\"Adheres to any smooth surface\",\"featureTwo\",\"Anodized aluminum\",\"featureThree\",\"3D rotation\",\"featureFour\",\"Portrait or landscape mode\",\"featureFive\",\"Ideal for low-security areas\",\"featureSix\",\"Minimal design showcases iPad\"],[\"loc\",[null,[72,20],[80,22]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 33,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 85,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"img\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"configurator-colors\");\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"                \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"p\");\n              var el2 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\" \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"span\");\n              dom.setAttribute(el2,\"class\",\"js-chosenColor\");\n              var el3 = dom.createTextNode(\"(\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\")\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"br\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"p\");\n              var el3 = dom.createElement(\"span\");\n              dom.setAttribute(el3,\"class\",\"lighter\");\n              var el4 = dom.createComment(\"\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element2 = dom.childAt(fragment, [1]);\n              var element3 = dom.childAt(fragment, [5]);\n              var morphs = new Array(8);\n              morphs[0] = dom.createAttrMorph(element2, 'src');\n              morphs[1] = dom.createMorphAt(dom.childAt(fragment, [3]),1,1);\n              morphs[2] = dom.createMorphAt(element3,1,1);\n              morphs[3] = dom.createMorphAt(dom.childAt(element3, [3]),1,1);\n              morphs[4] = dom.createMorphAt(element3,6,6);\n              morphs[5] = dom.createMorphAt(element3,8,8);\n              morphs[6] = dom.createMorphAt(element3,10,10);\n              morphs[7] = dom.createMorphAt(dom.childAt(element3, [12, 0]),0,0);\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"src\",[\"get\",\"stand.imgPath\",[\"loc\",[null,[34,27],[34,40]]]]],\n              [\"block\",\"each\",[[\"get\",\"stand.variants\",[\"loc\",[null,[36,26],[36,40]]]]],[],0,null,[\"loc\",[null,[36,18],[41,27]]]],\n              [\"content\",\"stand.name\",[\"loc\",[null,[44,18],[44,32]]]],\n              [\"content\",\"stand.selectedVariant\",[\"loc\",[null,[44,63],[44,88]]]],\n              [\"block\",\"if\",[[\"get\",\"stand.isWindfall\",[\"loc\",[null,[46,24],[46,40]]]]],[],1,null,[\"loc\",[null,[46,18],[57,25]]]],\n              [\"block\",\"if\",[[\"get\",\"stand.isAtrest\",[\"loc\",[null,[59,24],[59,38]]]]],[],2,null,[\"loc\",[null,[59,18],[69,25]]]],\n              [\"block\",\"if\",[[\"get\",\"stand.isMistand\",[\"loc\",[null,[71,24],[71,39]]]]],[],3,null,[\"loc\",[null,[71,18],[81,25]]]],\n              [\"content\",\"stand.price\",[\"loc\",[null,[83,43],[83,58]]]]\n            ],\n            locals: [],\n            templates: [child0, child1, child2, child3]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 32,\n                \"column\": 11\n              },\n              \"end\": {\n                \"line\": 86,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"configurator-option\",[],[\"class\",\"configurator-option-stand\",\"item\",[\"subexpr\",\"@mut\",[[\"get\",\"stand\",[\"loc\",[null,[33,76],[33,81]]]]],[],[]],\"list\",[\"subexpr\",\"@mut\",[[\"get\",\"list\",[\"loc\",[null,[33,87],[33,91]]]]],[],[]]],0,null,[\"loc\",[null,[33,14],[85,38]]]]\n          ],\n          locals: [\"stand\"],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 29,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 93,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h3\");\n          dom.setAttribute(el1,\"class\",\"configurator-header\");\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"configurator-header-number\");\n          var el3 = dom.createTextNode(\"2\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" Choose an iPad Stand\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          var el2 = dom.createTextNode(\"\\n              I already have a stand\\n            \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n          \");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [5]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(fragment,3,3,contextualElement);\n          morphs[1] = dom.createAttrMorph(element4, 'class');\n          morphs[2] = dom.createElementMorph(element4);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"each\",[[\"get\",\"stands\",[\"loc\",[null,[32,19],[32,25]]]]],[],0,null,[\"loc\",[null,[32,11],[86,21]]]],\n          [\"attribute\",\"class\",[\"concat\",[\"configurator-option configurator-option--none configurator-noStand \",[\"subexpr\",\"unless\",[[\"get\",\"selectedStand\",[\"loc\",[null,[88,101],[88,114]]]],\"active\"],[],[\"loc\",[null,[88,92],[88,125]]]]]]],\n          [\"element\",\"action\",[\"setStandToNone\"],[],[\"loc\",[null,[89,18],[89,45]]]]\n        ],\n        locals: [\"list\"],\n        templates: [child0]\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 124,\n              \"column\": 22\n            },\n            \"end\": {\n              \"line\": 126,\n              \"column\": 22\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"                        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"inputAddressErrorMessage\",[\"loc\",[null,[125,24],[125,52]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 126,\n              \"column\": 22\n            },\n            \"end\": {\n              \"line\": 128,\n              \"column\": 22\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"                        Shipping address\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 167,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/equipment/envoy-in-a-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"row\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"columns small-centered\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"onboarding-box\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"form\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"row\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"medium-10 columns small-centered u-centered\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h1\");\n        var el8 = dom.createTextNode(\"Envoy in a Box\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el5,\"class\",\"row\");\n        var el6 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"columns\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"columns\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h3\");\n        dom.setAttribute(el7,\"class\",\"configurator-header\");\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"configurator-header-number\");\n        var el9 = dom.createTextNode(\"3\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" Badge Printer\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"row\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"div\");\n        dom.setAttribute(el8,\"class\",\"configurator-option--horizontal\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"div\");\n        dom.setAttribute(el9,\"class\",\"medium-2 small-4 columns u-centered\");\n        var el10 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el9, el10);\n        var el10 = dom.createElement(\"img\");\n        dom.setAttribute(el10,\"src\",\"assets/images/envoy-in-a-box/720nw-nopadding.jpg\");\n        dom.appendChild(el9, el10);\n        var el10 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"div\");\n        dom.setAttribute(el9,\"class\",\"medium-10 small-8 columns\");\n        var el10 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el9, el10);\n        var el10 = dom.createElement(\"label\");\n        var el11 = dom.createTextNode(\"\\n                    \");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createElement(\"input\");\n        dom.setAttribute(el11,\"type\",\"radio\");\n        dom.setAttribute(el11,\"class\",\"\");\n        dom.setAttribute(el11,\"name\",\"add-a-printer\");\n        dom.setAttribute(el11,\"value\",\"yes\");\n        dom.setAttribute(el11,\"checked\",\"checked\");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createTextNode(\"\\n                    \");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createElement(\"span\");\n        dom.setAttribute(el11,\"class\",\"radio-text\");\n        var el12 = dom.createTextNode(\"Brother Inkless Badge Printer with Wi-Fi and Ethernet\");\n        dom.appendChild(el11, el12);\n        var el12 = dom.createElement(\"br\");\n        dom.appendChild(el11, el12);\n        var el12 = dom.createElement(\"strong\");\n        dom.setAttribute(el12,\"class\",\"green\");\n        var el13 = dom.createTextNode(\"2 free rolls of badges (300ct)\");\n        dom.appendChild(el12, el13);\n        dom.appendChild(el11, el12);\n        var el12 = dom.createElement(\"br\");\n        dom.appendChild(el11, el12);\n        var el12 = dom.createElement(\"span\");\n        dom.setAttribute(el12,\"class\",\"lighter\");\n        var el13 = dom.createTextNode(\"$139\");\n        dom.appendChild(el12, el13);\n        dom.appendChild(el11, el12);\n        dom.appendChild(el10, el11);\n        var el11 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el10, el11);\n        dom.appendChild(el9, el10);\n        var el10 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el9, el10);\n        var el10 = dom.createElement(\"label\");\n        var el11 = dom.createTextNode(\"\\n                    \");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createElement(\"input\");\n        dom.setAttribute(el11,\"type\",\"radio\");\n        dom.setAttribute(el11,\"class\",\"\");\n        dom.setAttribute(el11,\"name\",\"add-a-printer\");\n        dom.setAttribute(el11,\"value\",\"no\");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createTextNode(\"\\n                    \");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createElement(\"span\");\n        dom.setAttribute(el11,\"class\",\"radio-text\");\n        var el12 = dom.createTextNode(\"No printer\");\n        dom.appendChild(el11, el12);\n        dom.appendChild(el10, el11);\n        var el11 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el10, el11);\n        dom.appendChild(el9, el10);\n        var el10 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"columns\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"columns\");\n        var el7 = dom.createTextNode(\"\\n\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"row\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"div\");\n        dom.setAttribute(el8,\"class\",\"medium-10 large-8 columns small-centered\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"div\");\n        dom.setAttribute(el9,\"class\",\"row\");\n        var el10 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el9, el10);\n        var el10 = dom.createElement(\"div\");\n        dom.setAttribute(el10,\"class\",\"medium-9 small-7 columns\");\n        var el11 = dom.createTextNode(\"\\n                    \");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createElement(\"label\");\n        dom.setAttribute(el11,\"for\",\"_addressInput\");\n        var el12 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el11, el12);\n        var el12 = dom.createComment(\"\");\n        dom.appendChild(el11, el12);\n        var el12 = dom.createTextNode(\"                    \");\n        dom.appendChild(el11, el12);\n        dom.appendChild(el10, el11);\n        var el11 = dom.createTextNode(\"\\n                    \");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createComment(\"\");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el10, el11);\n        dom.appendChild(el9, el10);\n        var el10 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el9, el10);\n        var el10 = dom.createElement(\"div\");\n        dom.setAttribute(el10,\"class\",\"medium-3 small-5 columns\");\n        var el11 = dom.createTextNode(\"\\n                    \");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createElement(\"label\");\n        dom.setAttribute(el11,\"for\",\"_addressUnit\");\n        var el12 = dom.createTextNode(\"Suite #\");\n        dom.appendChild(el11, el12);\n        dom.appendChild(el10, el11);\n        var el11 = dom.createTextNode(\"\\n                    \");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createComment(\"\");\n        dom.appendChild(el10, el11);\n        var el11 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el10, el11);\n        dom.appendChild(el9, el10);\n        var el10 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"columns\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"row\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"div\");\n        dom.setAttribute(el8,\"class\",\"large-10 columns small-centered\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"h3\");\n        dom.setAttribute(el9,\"class\",\"u-centered\");\n        var el10 = dom.createTextNode(\"Your order will ship from our warehouse within 24 hours. We’ll invoice you for Envoy in a Box after 14 days, or just return everything in like-new condition at no cost to you.\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"onboardingFooter\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"row\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"medium-6 columns\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h2\");\n        var el8 = dom.createTextNode(\"Next up: Add Employees\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"medium-6 columns u-rightAlign\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element7 = dom.childAt(fragment, [0, 1, 1]);\n        var element8 = dom.childAt(element7, [1, 3]);\n        var element9 = dom.childAt(element8, [6, 3, 1, 3]);\n        if (this.cachedFragment) { dom.repairClonedNode(dom.childAt(element9, [1, 1]),[],true); }\n        var element10 = dom.childAt(element9, [1, 1]);\n        var element11 = dom.childAt(element9, [3, 1]);\n        var element12 = dom.childAt(element8, [9, 1, 1, 1]);\n        var element13 = dom.childAt(element12, [1]);\n        var element14 = dom.childAt(element13, [1]);\n        var morphs = new Array(9);\n        morphs[0] = dom.createMorphAt(element8,1,1);\n        morphs[1] = dom.createMorphAt(element8,3,3);\n        morphs[2] = dom.createElementMorph(element10);\n        morphs[3] = dom.createElementMorph(element11);\n        morphs[4] = dom.createAttrMorph(element14, 'class');\n        morphs[5] = dom.createMorphAt(element14,1,1);\n        morphs[6] = dom.createMorphAt(element13,3,3);\n        morphs[7] = dom.createMorphAt(dom.childAt(element12, [3]),3,3);\n        morphs[8] = dom.createMorphAt(dom.childAt(element7, [3, 1, 3]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"configurator-option-group\",[],[\"selected\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedIpad\",[\"loc\",[null,[13,48],[13,60]]]]],[],[]]],0,null,[\"loc\",[null,[13,10],[27,40]]]],\n        [\"block\",\"configurator-option-group\",[],[\"selected\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedStand\",[\"loc\",[null,[29,48],[29,61]]]]],[],[]]],1,null,[\"loc\",[null,[29,10],[93,40]]]],\n        [\"element\",\"action\",[\"setSelectedPrinter\",true],[\"on\",\"change\"],[\"loc\",[null,[105,100],[105,148]]]],\n        [\"element\",\"action\",[\"setSelectedPrinter\",false],[\"on\",\"change\"],[\"loc\",[null,[109,81],[109,130]]]],\n        [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"inputAddressErrorMessage\",[\"loc\",[null,[123,59],[123,83]]]],\"error-description\"],[],[\"loc\",[null,[123,54],[123,105]]]],\" addressLabel\"]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"inputAddressErrorMessage\",[\"loc\",[null,[124,35],[124,59]]]]],[\"class\",\"js-password\"],2,3,[\"loc\",[null,[124,22],[128,36]]]],\n        [\"inline\",\"address-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"inputAddress\",[\"loc\",[null,[130,42],[130,54]]]]],[],[]],\"id\",\"_addressInput\",\"placeholder\",\"Street, City, and State/Country\",\"class\",[\"subexpr\",\"concat\",[\"shipping-address\",\" \",[\"subexpr\",\"if\",[[\"get\",\"inputAddressErrorMessage\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[130,20],[130,190]]]],\n        [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"addressUnit\",[\"loc\",[null,[134,34],[134,45]]]]],[],[]],\"type\",\"text\",\"class\",\"shipping-address-unit\",\"id\",\"_addressUnit\"],[\"loc\",[null,[134,20],[134,107]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"createOrder\",\"class\",\"btn btn--medium btn--green js-continue\",\"default\",\"Continue\",\"pending\",\"Saving...\"],[\"loc\",[null,[159,12],[159,135]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/equipment/index/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Envoy In A Box'\n\n  });\n\n});","define('garaje/protected/onboarding/equipment/index/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 27,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/equipment/index/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"row\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"columns small-centered\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"onboarding-box\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"row\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-6 columns u-centered\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/envoy-in-a-box.png\");\n        dom.setAttribute(el6,\"class\",\"onboardingEIAB\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-6 columns\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h1\");\n        var el7 = dom.createTextNode(\"Envoy in a Box\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"subh1\");\n        var el7 = dom.createTextNode(\"Need equipment? We’ll send you an iPad, stand, and printer to use during your trial, and invoice you for Envoy in a Box after 14 days. Or, just return everything in like-new condition at no cost to you.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"onboardingFooter\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"row\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"medium-6 columns\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"a\");\n        dom.setAttribute(el7,\"class\",\"btn btn--medium btn--hoverOutline js-skip\");\n        var el8 = dom.createTextNode(\"Skip\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"medium-6 columns u-rightAlign\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1, 1, 3, 1]);\n        var element1 = dom.childAt(element0, [1, 1]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createElementMorph(element1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"goToNextOnboardingStep\",\"equipment\"],[],[\"loc\",[null,[17,15],[17,62]]]],\n        [\"inline\",\"link-to\",[\"Choose Equipment\",\"protected.onboarding.equipment.envoy-in-a-box\"],[\"class\",\"btn btn--medium btn--blue\"],[\"loc\",[null,[20,12],[20,124]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/equipment/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 6,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/equipment/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"onboarding\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(element0,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"onboarding-header\",[],[\"stepNumber\",2,\"totalSteps\",7],[\"loc\",[null,[2,2],[2,49]]]],\n        [\"content\",\"outlet\",[\"loc\",[null,[4,2],[4,12]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/index/route', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    redirect: function redirect() {\n      this.transitionTo('protected.onboarding.location');\n    }\n  });\n\n});","define('garaje/protected/onboarding/ipad/controller', ['exports', 'ember', 'garaje/utils/toggleable', 'garaje/utils/onboarding-flash-promise'], function (exports, Ember, toggleable, onboardingFlashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n\n    beenHereBefore: toggleable['default']('beenHereBefore'),\n    selfSignOut: toggleable['default']('selfSignOut'),\n    hasNdaPage: toggleable['default']('hasNdaPage'),\n    hasPhotoPage: toggleable['default']('hasPhotoPage'),\n\n    hasEmailOrPhone: Ember['default'].computed.or('model.hasEmail', 'model.hasPhone'),\n\n    actions: {\n      save: function save(callback) {\n        var _this = this;\n\n        var promise = this.get('model').save().then(function () {\n          _this.send('goToNextOnboardingStep', 'ipad', callback);\n        })['catch'](function (error) {\n          callback(Ember['default'].RSVP.reject());\n          throw error;\n        });\n\n        onboardingFlashPromise['default'](promise, this);\n      }\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/ipad/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Customize Your iPad',\n\n    model: function model() {\n      return this.get('currentLocation.config');\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/ipad/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 12,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 18,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/ipad/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto px2\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h4\");\n          var el3 = dom.createTextNode(\"Been here before?\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"m0\");\n          var el3 = dom.createTextNode(\"Returning visitors won't re-fill documents or their personal information each time they visit.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"icon-checkmark flex-none\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 20,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 29,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/ipad/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto px2\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h4\");\n          var el3 = dom.createTextNode(\"Document Signing\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"m0\");\n          var el3 = dom.createTextNode(\"Collect NDA or waiver signatures from your visitors.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"class\",\"toggle\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-document-signing\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"hasNdaPage\",[\"loc\",[null,[26,72],[26,82]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[26,92],[26,100]]]]],[],[]]],[\"loc\",[null,[26,12],[26,102]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 31,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 40,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/ipad/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto px2\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h4\");\n          var el3 = dom.createTextNode(\"Visitor Photos\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"m0\");\n          var el3 = dom.createTextNode(\"Take photos of your visitors to help hosts identify their guests.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"class\",\"toggle\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-visitor-photos-input\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"hasPhotoPage\",[\"loc\",[null,[37,76],[37,88]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[37,98],[37,106]]]]],[],[]]],[\"loc\",[null,[37,12],[37,108]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 57,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/ipad/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pageContainer\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"container px3\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"border rounded bg-grayLightest p3 mb3\");\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"md-col-10 lg-col-8 mx-auto mb2 center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h1\");\n        dom.setAttribute(el5,\"class\",\"mt2 mb3\");\n        var el6 = dom.createTextNode(\"Customize your iPad\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"h5 grayDark\");\n        var el6 = dom.createTextNode(\"Customize the iPad screens your visitors will use to sign in.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"lg-col-10 mx-auto\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        dom.setAttribute(el5,\"class\",\"mt4 mb1\");\n        var el6 = dom.createTextNode(\"Visitor Sign-in Screen\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"h5 grayDark\");\n        var el6 = dom.createTextNode(\"Select and create fields you’d like your visitors to complete. Toggle a field to “required” if it is mandatory to collect that information.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"center mt3\");\n        var el6 = dom.createTextNode(\"You can configure more iPad settings, customize your NDA text, and set multiple types of signed agreements once you’ve completed onboarding.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"onboardingFooter p3 border-top bg-white mxn2 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        dom.setAttribute(el5,\"class\",\"flex-auto\");\n        var el6 = dom.createTextNode(\"Next up: Host Notifications\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [3, 1]);\n        var element2 = dom.childAt(element1, [3]);\n        var morphs = new Array(6);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(element2,1,1);\n        morphs[2] = dom.createMorphAt(element2,3,3);\n        morphs[3] = dom.createMorphAt(element2,5,5);\n        morphs[4] = dom.createMorphAt(element2,11,11);\n        morphs[5] = dom.createMorphAt(dom.childAt(element1, [5]),3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"onboarding-header\",[],[\"stepNumber\",3,\"totalSteps\",6],[\"loc\",[null,[2,2],[2,49]]]],\n        [\"block\",\"settings-box\",[],[\"iconPath\",\"assets/images/features/peace.png\"],0,null,[\"loc\",[null,[12,8],[18,25]]]],\n        [\"block\",\"settings-box\",[],[\"iconPath\",\"assets/images/features/signature.png\",\"testingClass\",\"js-nda-toggle\"],1,null,[\"loc\",[null,[20,8],[29,25]]]],\n        [\"block\",\"settings-box\",[],[\"iconPath\",\"assets/images/features/selfie.png\",\"testingClass\",\"js-visitor-photos\"],2,null,[\"loc\",[null,[31,8],[40,25]]]],\n        [\"inline\",\"ipad-custom-fields\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[45,35],[45,40]]]]],[],[]]],[\"loc\",[null,[45,8],[45,42]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--medium btn--green\",\"default\",\"Continue\",\"pending\",\"Saving...\"],[\"loc\",[null,[52,8],[52,112]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/location/controller', ['exports', 'ember', 'ember-validations', 'garaje/utils/onboarding-flash-promise'], function (exports, Ember, Validations, onboardingFlashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend(Validations['default'], {\n    validations: {\n      // need fix for async ember-validations\n      // 'model.company.name': { presence: true },\n      'model.name': { presence: true }\n    },\n\n    locationCountOptions: [{ value: '1' }, { value: '2-5' }, { value: '6-9' }, { value: '10+' }],\n\n    callback: null,\n\n    shouldValidate: false,\n\n    actions: {\n\n      triggerSaveValidations: function triggerSaveValidations(callback) {\n        this.setProperties({\n          shouldValidate: true,\n          callback: callback\n        });\n      },\n\n      persist: function persist() {\n        var _this = this;\n\n        var callback = this.get('callback');\n\n        this.set('model.preRegistrationEnabled', true);\n\n        var promise = this.get('model').save().then(function () {\n          _this.send('goToNextOnboardingStep', 'location', callback);\n        })['catch'](function (error) {\n          callback(Ember['default'].RSVP.reject());\n          throw error;\n        });\n\n        onboardingFlashPromise['default'](promise, this);\n      }\n    }\n  });\n\n});","define('garaje/protected/onboarding/location/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Location Info',\n\n    model: function model() {\n      return this.get('currentLocation');\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/location/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 39,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/location/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pageContainer\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"container px3\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"border rounded bg-grayLightest p3 mb3\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"form\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"md-col-10 lg-col-8 mx-auto mb4 center\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h1\");\n        dom.setAttribute(el6,\"class\",\"mt2 mb3\");\n        var el7 = dom.createTextNode(\"Welcome to Envoy!\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"h5 grayDark\");\n        var el7 = dom.createTextNode(\"In just a few steps, we’ll have your account up and running. If you need help at any time, just click the blue \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"strong\");\n        var el8 = dom.createTextNode(\"Live Chat\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\" button in the bottom right of your screen. Let’s get you started with Envoy.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el5,\"class\",\"clearfix mxn2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"col col-6 px2\");\n        var el7 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"col col-6 px2\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"onboardingFooter p3 border-top bg-white mxn2 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        dom.setAttribute(el5,\"class\",\"flex-auto\");\n        var el6 = dom.createTextNode(\"Next up: Employees\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [3, 1]);\n        var element2 = dom.childAt(element1, [1, 3]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element2, [3]),1,1);\n        morphs[3] = dom.createMorphAt(dom.childAt(element1, [3]),3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"onboarding-header\",[],[\"stepNumber\",1,\"totalSteps\",6],[\"loc\",[null,[2,2],[2,49]]]],\n        [\"inline\",\"location-info\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[14,20],[14,25]]]]],[],[]],\"modelId\",[\"subexpr\",\"@mut\",[[\"get\",\"model.id\",[\"loc\",[null,[15,22],[15,30]]]]],[],[]],\"callback\",[\"subexpr\",\"@mut\",[[\"get\",\"callback\",[\"loc\",[null,[16,23],[16,31]]]]],[],[]],\"shouldValidate\",[\"subexpr\",\"@mut\",[[\"get\",\"shouldValidate\",[\"loc\",[null,[17,29],[17,43]]]]],[],[]],\"showLocationsCount\",true,\"persist\",\"persist\"],[\"loc\",[null,[13,14],[20,16]]]],\n        [\"inline\",\"logo-uploader\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[23,34],[23,39]]]]],[],[]]],[\"loc\",[null,[23,12],[23,41]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"triggerSaveValidations\",\"class\",\"btn btn--medium btn--green js-continue\",\"default\",\"Continue\",\"pending\",\"Saving...\"],[\"loc\",[null,[30,8],[35,10]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/notifications/controller', ['exports', 'ember', 'garaje/utils/toggleable', 'garaje/utils/oauth', 'garaje/utils/get-hostname', 'garaje/utils/url-builder'], function (exports, Ember, toggleable, oauth, getHostname, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    emailNotificationEnabled: toggleable['default']('emailNotificationEnabled'),\n    smsNotificationEnabled: toggleable['default']('smsNotificationEnabled'),\n    slackNotificationEnabled: toggleable['default']('slackNotificationEnabled'),\n    hipchatNotificationEnabled: toggleable['default']('hipchatNotificationEnabled'),\n\n    slackConnected: Ember['default'].computed.alias('model.company.slackConnected'),\n    slackTeamName: Ember['default'].computed.alias('model.company.slackTeamName'),\n    hipchatConnected: Ember['default'].computed.alias('model.company.hipchatConnected'),\n\n    hipchatAddonUrl: Ember['default'].computed('hipchatServerDomain', function () {\n      var hostname = getHostname['default'](this.get('hipchatServerDomain')) || 'hipchat.com';\n      return 'https://' + hostname + '/admin/addons?install_key=com.signwithenvoy.addon';\n    }),\n\n    actions: {\n      enableSlack: function enableSlack() {\n        var _this = this;\n\n        var company = this.get('model.company.content');\n\n        oauth['default'](urlBuilder['default'].slackAuthUrl(), 750, 750).then(function (data) {\n          _this.setProperties({\n            slackNotificationEnabled: true,\n            slackConnected: true,\n            slackTeamName: data.team_name\n          });\n          // location is saved automatically from the toggleable\n          company.save();\n        });\n      },\n\n      disableSlack: function disableSlack() {\n        if (confirm('Are you sure you want to disconnect Slack?')) {\n          var company = this.get('model.company.content');\n\n          this.setProperties({\n            slackNotificationEnabled: false,\n            slackConnected: false\n          });\n          // location is saved automatically from the toggleable\n          company.save();\n        }\n      },\n\n      disableHipchat: function disableHipchat() {\n        if (confirm('Are you sure you want to disconnect HipChat?')) {\n          this.setProperties({\n            hipchatNotificationEnabled: false,\n            hipchatConnected: false\n          });\n\n          // location is saved automatically from the toggleable\n          var company = this.get('model.company.content');\n          company.save();\n        }\n      }\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/notifications/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Notifications',\n\n    model: function model() {\n      return this.get('currentLocation');\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/notifications/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 12,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 18,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto px2\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h4\");\n          var el3 = dom.createTextNode(\"Push Notifications\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"m0\");\n          var el3 = dom.createTextNode(\"Send employees an iPhone push notification when their guest arrives. Requires \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"a\");\n          dom.setAttribute(el3,\"href\",\"https://signwithenvoy.com/iphone/\");\n          dom.setAttribute(el3,\"target\",\"_blank\");\n          var el4 = dom.createTextNode(\"Envoy for iPhone\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\".\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"icon-checkmark flex-none\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 20,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 29,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto px2\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h4\");\n          var el3 = dom.createTextNode(\"Email Notification\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"m0\");\n          var el3 = dom.createTextNode(\"Send employees an email when their guest arrives.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"class\",\"toggle\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-email-notification\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"emailNotificationEnabled\",[\"loc\",[null,[26,74],[26,98]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[26,108],[26,116]]]]],[],[]]],[\"loc\",[null,[26,12],[26,118]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 31,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 40,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto px2\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h4\");\n          var el3 = dom.createTextNode(\"SMS Notification\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"m0\");\n          var el3 = dom.createTextNode(\"Send employees a SMS when their guest arrives.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"class\",\"toggle\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-sms-notification\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"smsNotificationEnabled\",[\"loc\",[null,[37,72],[37,94]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[37,104],[37,112]]]]],[],[]]],[\"loc\",[null,[37,12],[37,114]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 45,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 47,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"p\");\n            dom.setAttribute(el1,\"class\",\"m0\");\n            var el2 = dom.createTextNode(\"Connected to \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"b\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\". \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"a\");\n            dom.setAttribute(el2,\"class\",\"delete\");\n            var el3 = dom.createTextNode(\"Disconnect\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [1]);\n            var element2 = dom.childAt(element1, [3]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element1, [1]),0,0);\n            morphs[1] = dom.createElementMorph(element2);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"slackTeamName\",[\"loc\",[null,[46,44],[46,61]]]],\n            [\"element\",\"action\",[\"disableSlack\"],[],[\"loc\",[null,[46,85],[46,110]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 47,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 49,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"p\");\n            dom.setAttribute(el1,\"class\",\"m0\");\n            var el2 = dom.createTextNode(\"Send employees a Slack message when their guests arrive.\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 51,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 56,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"label\");\n            dom.setAttribute(el1,\"class\",\"toggle\");\n            var el2 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"span\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-slack-notification\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"slackNotificationEnabled\",[\"loc\",[null,[53,76],[53,100]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[53,110],[53,118]]]]],[],[]]],[\"loc\",[null,[53,14],[53,120]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 56,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 58,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue flex-none\");\n            var el2 = dom.createTextNode(\"Enable\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element0);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"enableSlack\"],[],[\"loc\",[null,[57,58],[57,82]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 42,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 59,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto px2\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h4\");\n          var el3 = dom.createTextNode(\"Slack Notification\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),3,3);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"slackConnected\",[\"loc\",[null,[45,18],[45,32]]]]],[],0,1,[\"loc\",[null,[45,12],[49,19]]]],\n          [\"block\",\"if\",[[\"get\",\"slackConnected\",[\"loc\",[null,[51,16],[51,30]]]]],[],2,3,[\"loc\",[null,[51,10],[58,17]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 69,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/notifications/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pageContainer\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"container px3\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"border rounded bg-grayLightest p3 mb3\");\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"lg-col-10 mx-auto mb2 center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h1\");\n        dom.setAttribute(el5,\"class\",\"mt2 mb3\");\n        var el6 = dom.createTextNode(\"Host Notifications\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"h5 grayDark\");\n        var el6 = dom.createTextNode(\"When an employee’s visitor arrives, Envoy will notify them using the method of your choice. It’s simple: just choose from email, SMS and Slack. If the employee has Envoy for iPhone, they’ll receive a push notification as well.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"lg-col-10 mx-auto\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"onboardingFooter p3 border-top bg-white mxn2 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        dom.setAttribute(el5,\"class\",\"flex-auto\");\n        var el6 = dom.createTextNode(\"Next up: Pre-Registration\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"class\",\"btn btn--medium btn--green\");\n        var el6 = dom.createTextNode(\"Continue\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element3 = dom.childAt(fragment, [0]);\n        var element4 = dom.childAt(element3, [3, 1]);\n        var element5 = dom.childAt(element4, [3]);\n        var element6 = dom.childAt(element4, [5, 3]);\n        var morphs = new Array(6);\n        morphs[0] = dom.createMorphAt(element3,1,1);\n        morphs[1] = dom.createMorphAt(element5,1,1);\n        morphs[2] = dom.createMorphAt(element5,3,3);\n        morphs[3] = dom.createMorphAt(element5,5,5);\n        morphs[4] = dom.createMorphAt(element5,7,7);\n        morphs[5] = dom.createElementMorph(element6);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"onboarding-header\",[],[\"stepNumber\",4,\"totalSteps\",6],[\"loc\",[null,[2,2],[2,49]]]],\n        [\"block\",\"settings-box\",[],[\"iconPath\",\"assets/images/features/apns.png\"],0,null,[\"loc\",[null,[12,8],[18,25]]]],\n        [\"block\",\"settings-box\",[],[\"iconPath\",\"assets/images/features/email.png\"],1,null,[\"loc\",[null,[20,8],[29,25]]]],\n        [\"block\",\"settings-box\",[],[\"iconPath\",\"assets/images/features/sms.png\"],2,null,[\"loc\",[null,[31,8],[40,25]]]],\n        [\"block\",\"settings-box\",[],[\"iconPath\",\"assets/images/features/slack.png\",\"testingClass\",\"js-slack\"],3,null,[\"loc\",[null,[42,8],[59,25]]]],\n        [\"element\",\"action\",[\"goToNextOnboardingStep\",\"notifications\"],[],[\"loc\",[null,[64,11],[64,62]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/pre-registration/controller', ['exports', 'ember', 'garaje/utils/toggleable', 'garaje/utils/onboarding-flash-promise'], function (exports, Ember, toggleable, onboardingFlashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    preRegistrationEnabled: toggleable['default']('preRegistrationEnabled'),\n\n    actions: {\n      saveAndContinue: function saveAndContinue(callback) {\n        var _this = this;\n\n        var promise = this.get('model').save().then(function () {\n          _this.send('goToNextOnboardingStep', 'preRegistration', callback);\n        })['catch'](function () {\n          callback(Ember['default'].RSVP.reject());\n        });\n\n        onboardingFlashPromise['default'](promise, this);\n      }\n    }\n  });\n\n});","define('garaje/protected/onboarding/pre-registration/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Visitor Pre-registration',\n\n    model: function model() {\n      return this.get('currentLocation');\n    }\n\n  });\n\n});","define('garaje/protected/onboarding/pre-registration/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 12,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 21,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/pre-registration/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto px2\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h4\");\n          var el3 = dom.createTextNode(\"Guest Pre-Registration\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"m0\");\n          var el3 = dom.createTextNode(\"Allow employees to invite visitors via email\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"class\",\"toggle\");\n          var el2 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-pre-registration\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"preRegistrationEnabled\",[\"loc\",[null,[18,74],[18,96]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[18,106],[18,114]]]]],[],[]]],[\"loc\",[null,[18,14],[18,116]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 23,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 28,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/protected/onboarding/pre-registration/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h2\");\n          dom.setAttribute(el1,\"class\",\"mt3 mb1\");\n          var el2 = dom.createTextNode(\"Invitation Email\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"h5 grayDark\");\n          var el2 = dom.createTextNode(\"Your invitation will contain a map and an “add to calendar” button automatically, in addition to any custom text you choose. We recommend adding information like directions, security requirements (like bringing identification), parking tips, and contact information.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,5,5,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"pre-registration-email-preview\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[27,49],[27,54]]]]],[],[]],\"previewEmailObject\",[\"subexpr\",\"@mut\",[[\"get\",\"previewEmailObject\",[\"loc\",[null,[27,74],[27,92]]]]],[],[]]],[\"loc\",[null,[27,10],[27,94]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 38,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/pre-registration/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pageContainer\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"container px3\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"border rounded bg-grayLightest p3 mb3\");\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"md-col-10 lg-col-8 mx-auto mb2 center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h1\");\n        dom.setAttribute(el5,\"class\",\"mt2 mb3\");\n        var el6 = dom.createTextNode(\"Guest Pre-Registration\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"class\",\"h5 grayDark\");\n        var el6 = dom.createTextNode(\"Pre-registration allows you to seamlessly provide your team with a list of expected visitors and send guests a customized welcome email, all in one easy step.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"lg-col-10 mx-auto\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"onboardingFooter p3 border-top bg-white mxn2 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        dom.setAttribute(el5,\"class\",\"flex-auto\");\n        var el6 = dom.createTextNode(\"Next up: Greet Your First Visitor\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [3, 1]);\n        var element2 = dom.childAt(element1, [3]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(element2,1,1);\n        morphs[2] = dom.createMorphAt(element2,3,3);\n        morphs[3] = dom.createMorphAt(dom.childAt(element1, [5]),3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"onboarding-header\",[],[\"stepNumber\",5,\"totalSteps\",6],[\"loc\",[null,[2,2],[2,49]]]],\n        [\"block\",\"settings-box\",[],[\"iconPath\",\"assets/images/features/prereg.png\"],0,null,[\"loc\",[null,[12,8],[21,25]]]],\n        [\"block\",\"if\",[[\"get\",\"preRegistrationEnabled\",[\"loc\",[null,[23,14],[23,36]]]]],[],1,null,[\"loc\",[null,[23,8],[28,15]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"saveAndContinue\",\"class\",\"btn btn--medium btn--green\",\"default\",\"Continue\",\"pending\",\"Saving...\"],[\"loc\",[null,[33,8],[33,123]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/route', ['exports', 'ember', 'garaje/utils/onboarding-flash-promise'], function (exports, Ember, onboardingFlashPromise) {\n\n  'use strict';\n\n  var transitions = [{ location: 'employees' }, { employees: 'ipad' }, { ipad: 'notifications' }, { notifications: 'pre-registration' }, { preRegistration: 'video' }, { video: 'complete' }];\n\n  exports['default'] = Ember['default'].Route.extend({\n\n    renderTemplate: function renderTemplate() {\n      this._super();\n      this.render({ into: 'application' });\n    },\n\n    actions: {\n      goToNextOnboardingStep: function goToNextOnboardingStep(currentStep, callback) {\n        var _this = this;\n\n        var nextStep = transitions.findBy(currentStep)[currentStep];\n\n        this.set('currentLocation.company.onboardingStatus', nextStep);\n\n        var promise = this.get('currentLocation.company.content').save().then(function () {\n          var appController = _this.controllerFor('application');\n          var isBoss = appController.get('isBoss');\n\n          if (nextStep !== 'complete') {\n            _this.transitionTo('protected.onboarding.' + nextStep);\n          } else {\n            if (window.analytics && !isBoss) {\n              window.analytics.track('completedOnboarding');\n            }\n            _this.transitionTo('dashboard');\n          }\n\n          if (currentStep === 'video' && window.analytics && !isBoss) {\n            window.analytics.page('dashboard');\n          }\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n        onboardingFlashPromise['default'](promise, this);\n\n        return promise;\n      }\n    }\n  });\n\n});","define('garaje/protected/onboarding/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 6,\n            \"column\": 62\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"style\",\"min-height:100vh\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"a\");\n        dom.setAttribute(el1,\"style\",\"display:block;padding:20px;color:#a7a8ad;font-size:12px\");\n        var el2 = dom.createTextNode(\"Log out\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"iframe\");\n        dom.setAttribute(el1,\"style\",\"display:none;\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [2]);\n        var element1 = dom.childAt(fragment, [4]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),1,1);\n        morphs[1] = dom.createElementMorph(element0);\n        morphs[2] = dom.createAttrMorph(element1, 'src');\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"outlet\",[\"loc\",[null,[2,2],[2,12]]]],\n        [\"element\",\"action\",[\"logout\"],[],[\"loc\",[null,[5,3],[5,22]]]],\n        [\"attribute\",\"src\",[\"get\",\"envoyIframeUrl\",[\"loc\",[null,[6,14],[6,28]]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/protected/onboarding/video/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/mixins/segment-page-view'], function (exports, Ember, ResetScroll, IntercomUpdate, SegmentPageView) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], SegmentPageView['default'], {\n    titleToken: 'Welcome To Envoy Video'\n  });\n\n});","define('garaje/protected/onboarding/video/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 25,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/protected/onboarding/video/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pageContainer\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"container px3\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"border rounded bg-grayLightest p3 mb3\");\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"lg-col-10 mx-auto mb2 center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h1\");\n        dom.setAttribute(el5,\"class\",\"mt2 mb3\");\n        var el6 = dom.createTextNode(\"Greet Your First Visitor\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        dom.setAttribute(el5,\"style\",\"text-align:left;display:inline-block;\");\n        var el6 = dom.createTextNode(\"\\n          1. Open the App Store on your iPad and download the \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"https://itunes.apple.com/us/app/envoy-visitor-registration/id638367498?mt=8\");\n        dom.setAttribute(el6,\"target\",\"_blank\");\n        var el7 = dom.createTextNode(\"Envoy app\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\".\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"br\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          2. Sign in with \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"b\");\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\" and the password you created earlier.\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"br\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          3. Take Envoy for a test run. Sign yourself in as your first visitor!\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"If you need an iPad, stand, or printer, visit the \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"https://envoy.co/envoy-in-a-box\");\n        dom.setAttribute(el6,\"target\",\"_blank\");\n        var el7 = dom.createTextNode(\"Envoy Store\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\".\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"iframe\");\n        dom.setAttribute(el5,\"src\",\"https://player.vimeo.com/video/130118274?color=ffffff&title=0&byline=0&portrait=0\");\n        dom.setAttribute(el5,\"class\",\"onboarding-finalVideo\");\n        dom.setAttribute(el5,\"frameborder\",\"0\");\n        dom.setAttribute(el5,\"webkitallowfullscreen\",\"\");\n        dom.setAttribute(el5,\"mozallowfullscreen\",\"\");\n        dom.setAttribute(el5,\"allowfullscreen\",\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"onboardingFooter p3 border-top bg-white mxn2 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        dom.setAttribute(el5,\"class\",\"flex-auto\");\n        var el6 = dom.createTextNode(\"Hooray!\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"class\",\"btn btn--medium btn--green\");\n        var el6 = dom.createTextNode(\"Go to Dashboard\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [3, 1]);\n        var element2 = dom.childAt(element1, [3, 3]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element1, [1, 3, 5]),0,0);\n        morphs[2] = dom.createElementMorph(element2);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"onboarding-header\",[],[\"stepNumber\",6,\"totalSteps\",6],[\"loc\",[null,[2,2],[2,49]]]],\n        [\"content\",\"currentLocation.admin.email\",[\"loc\",[null,[10,29],[10,60]]]],\n        [\"element\",\"action\",[\"goToNextOnboardingStep\",\"video\"],[],[\"loc\",[null,[20,11],[20,54]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/router', ['exports', 'ember', 'garaje/config/environment'], function (exports, Ember, config) {\n\n  'use strict';\n\n  var Router = Ember['default'].Router.extend({\n    location: config['default'].locationType\n  });\n\n  Router.map(function () {\n    this.route('login');\n    this.route('doorkeeper');\n\n    this.route('protected', { path: '/' }, function () {\n      this.route('dashboard', {\n        resetNamespace: true\n      }, Ember['default'].K);\n      this.route('pre-registered', {\n        resetNamespace: true\n      }, Ember['default'].K);\n      this.route('entry', {\n        path: 'entries/:entry_id',\n        resetNamespace: true\n      });\n      this.route('analytics', {\n        resetNamespace: true\n      }, Ember['default'].K);\n      this.route('employees', {\n        resetNamespace: true\n      }, function () {\n        this.route('employee', {\n          path: ':employee_id',\n          resetNamespace: true\n        });\n        this.route('new-employee', {\n          path: 'new',\n          resetNamespace: true\n        });\n      });\n      this.route('import', {\n        path: 'employees/import',\n        resetNamespace: true\n      });\n      this.route('sync-settings', {\n        path: 'employees/sync-settings',\n        resetNamespace: true\n      });\n      this.route('devices', {\n        resetNamespace: true\n      }, function () {\n        this.route('ipads', {\n          resetNamespace: true\n        });\n        this.route('printers', {\n          resetNamespace: true\n        });\n      });\n      this.route('settings', {\n        resetNamespace: true\n      }, function () {\n        this.route('new-location', {\n          resetNamespace: true\n        });\n        this.route('location', {\n          path: 'account',\n          resetNamespace: true\n        }, function () {\n          this.route('admin', {\n            resetNamespace: true\n          });\n          this.route('receptionist', {\n            resetNamespace: true\n          });\n          this.route('saml', {\n            resetNamespace: true\n          });\n          this.route('i18n', {\n            resetNamespace: true\n          });\n        });\n        this.route('ipad', {\n          resetNamespace: true\n        });\n        this.route('customize', {\n          resetNamespace: true\n        });\n        this.route('badge', {\n          resetNamespace: true\n        }, function () {\n          this.route('badge-edit', {\n            path: '/edit',\n            resetNamespace: true\n          });\n        });\n        this.route('badge-enable', {\n          resetNamespace: true\n        });\n        this.route('notifications', {\n          resetNamespace: true\n        });\n        this.route('pre-registration', {\n          resetNamespace: true\n        });\n        this.route('integrations', function () {\n          this.route('enabled');\n        });\n        this.route('pre-registration-upgrade', {\n          resetNamespace: true\n        });\n        this.route('billing', {\n          resetNamespace: true\n        }, function () {\n          this.route('plans', {\n            resetNamespace: true\n          });\n          this.route('subscribe', {\n            resetNamespace: true\n          });\n        });\n      });\n      this.route('contact-us', {\n        resetNamespace: true\n      });\n      this.route('onboarding', function () {\n        this.route('location');\n        this.route('equipment', function () {\n          this.route('envoy-in-a-box');\n        });\n        this.route('employees', function () {\n          this.route('syncing');\n          this.route('import-csv');\n          this.route('add-manual');\n        });\n        this.route('ipad');\n        this.route('notifications');\n        this.route('pre-registration');\n        this.route('video');\n      });\n      this.route('unauthorized', {\n        resetNamespace: true\n      });\n      this.route('not-found', {\n        path: '/*path',\n        resetNamespace: true\n      });\n    });\n  });\n\n  exports['default'] = Router;\n\n});","define('garaje/routes/admin', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    model: function model() {\n      return this.get('currentLocation.admin');\n    },\n\n    afterModel: function afterModel(model) {\n      model.set('isEditing', true);\n    },\n\n    deactivate: function deactivate() {\n      this.modelFor('admin').set('isEditing', false);\n    },\n\n    // This is a hack to get deactivate to fire\n    // when the route is refreshed, when we\n    // switch between locations\n    beforeModel: function beforeModel() {\n      if (this.controller) {\n        this.deactivate();\n      }\n    }\n  });\n\n});","define('garaje/routes/application', ['exports', 'ember', 'ember-simple-auth/mixins/application-route-mixin', 'garaje/utils/url-builder', 'garaje/config/environment'], function (exports, Ember, ApplicationRouteMixin, url_builder, config) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ApplicationRouteMixin['default'], {\n    googleSyncManager: Ember['default'].inject.service(),\n    session: Ember['default'].inject.service('session'),\n\n    sessionAuthenticated: function sessionAuthenticated() {\n      this._super.apply(this, arguments);\n\n      this.controller.get('envoyLoginUrl');\n    },\n\n    sessionInvalidated: function sessionInvalidated() {\n      if (window.analytics && !this.controller.get('isBoss')) {\n        window.analytics.reset();\n      }\n\n      this.set('localStorage.is_boss', false);\n\n      if (this._sessionInvalidationFromDeboss) {\n        this._sessionInvalidationFromDeboss = false;\n        var _location = this.get('currentLocation');\n        this.send('redirectToBoss', '/locations/%@'.fmt(_location.get('id')));\n      } else {\n        this._super.apply(this, arguments);\n      }\n    },\n\n    actions: {\n      switchLocation: function switchLocation() {\n        this.refresh();\n      },\n\n      // Differentiate session invalidation between\n      // an explicit logout and an expired token\n      logout: function logout() {\n        var _this = this;\n\n        this.get('session').invalidate();\n\n        Ember['default'].$(window).one('message', function (event) {\n          if (event.originalEvent.data === 'signed_out') {\n            _this.send('invalidateSession');\n          }\n        });\n        this.controller.set('envoyIframeUrl', this.controller.get('envoyLogoutUrl'));\n      },\n\n      redirectToEnvoy: function redirectToEnvoy(path) {\n        if (Ember['default'].testing) {\n          this._location = path;\n        } else {\n          window.location.replace(url_builder.buildUrl(path, config['default'].envoyHost));\n        }\n      },\n\n      redirectToBoss: function redirectToBoss(path) {\n        if (Ember['default'].testing) {\n          this._location = path;\n        } else {\n          window.location.replace(url_builder.buildUrl(path, config['default'].envoyBossHost));\n        }\n      },\n\n      error: function error(_error) {\n        Ember['default'].onerror(_error);\n        return true;\n      },\n\n      showFlash: function showFlash(type, message) {\n        this.controller.setProperties({\n          type: type,\n          message: message,\n          flashVisible: true\n        });\n      },\n\n      showOnboardingFlash: function showOnboardingFlash(type, message) {\n        this.controller.setProperties({\n          type: type,\n          message: message,\n          onboardingFlashVisible: true\n        });\n      },\n\n      hideFlash: function hideFlash() {\n        this.controller.setProperties({\n          flashVisible: false,\n          onboardingFlashVisible: false\n        });\n      },\n\n      clickLogo: function clickLogo(isBoss) {\n        if (isBoss) {\n          this._sessionInvalidationFromDeboss = true;\n          this.send('invalidateSession');\n        } else {\n          this.transitionTo('application');\n        }\n      },\n\n      sync: function sync() {\n        this.get('googleSyncManager').sync(this.get('currentLocation.company'));\n      },\n\n      goToRoute: function goToRoute(route) {\n        this.transitionTo(route);\n      },\n\n      invalidateSession: function invalidateSession() {\n        this.get('session').invalidate();\n      },\n\n      goToAnchor: function goToAnchor(route, anchor) {\n        this.transitionTo(route).then(function () {\n          Ember['default'].run.next(this, function () {\n            var $elem = Ember['default'].$(anchor);\n            var scrollOffset = $elem.offset().top;\n            Ember['default'].$('html, body').animate({\n              scrollTop: scrollOffset\n            }, 300, function () {\n              $elem.removeClass('u-glow-trigger');\n              // give it a tick\n              setTimeout(function () {\n                $elem.addClass('u-glow-trigger');\n              });\n            });\n          });\n        });\n      }\n    }\n  });\n\n});","define('garaje/routes/badge-edit', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    model: function model() {\n      return this.get('subscription');\n    },\n\n    afterModel: function afterModel(model, transition) {\n      if (!model.get('canAccessCustomBadge')) {\n        this.controllerFor('subscribe').set('previousTransition', transition);\n        var params = { queryParams: { plan: 'premium', period: model.get('period') } };\n        return this.transitionTo('subscribe', params);\n      }\n    }\n  });\n\n});","define('garaje/routes/badge-enable', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Badge Settings',\n\n    activate: function activate() {\n      this._super();\n      //running in next run loop to avoid active getting removed by ember default behavior when coming from dashboard\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('settings').set('badgeActive', true);\n      });\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.controllerFor('settings').set('badgeActive', false);\n    }\n  });\n\n});","define('garaje/routes/badge', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Badge Settings',\n\n    // This is a hack to get deactivate to fire\n    // when the route is refreshed, when we\n    // switch between locations\n    beforeModel: function beforeModel(transition) {\n      var _this = this;\n\n      var badgeController = this.controllerFor('badge');\n      this._super.apply(this, arguments);\n\n      if (this.controller) {\n        this.deactivate();\n      }\n\n      badgeController.set('previousTransition', null);\n\n      this.get('currentLocation.printer').then(function (printer) {\n        if (!printer.get('enabled')) {\n          badgeController.set('previousTransition', transition);\n          _this.transitionTo('badge-enable');\n        }\n      });\n\n      //if not enabled, save the transition in badge controller and redirect to badge-enable\n      if (!this.get('currentLocation.printer.enabled')) {\n        badgeController.set('previousTransition', transition);\n        this.transitionTo('badge-enable');\n      }\n    },\n\n    model: function model() {\n      return Ember['default'].RSVP.hash(this.get('currentLocation').getProperties('config', 'badge', 'printer'));\n    },\n\n    afterModel: function afterModel(model) {\n      return this.store.findRecord('config', model.config.get('id'), {\n        reload: true\n      }).then(function (config) {\n        model.config = config;\n      });\n    },\n\n    setupController: function setupController(controller, model) {\n      this._super(controller, model.badge);\n      controller.setProperties({\n        config: model.config,\n        printer: model.printer,\n        isBadgePrintingEnabled: Ember['default'].get(model.printer, 'enabled')\n      });\n    },\n\n    activate: function activate() {\n      this._super();\n      //running in next run loop to avoid active getting removed by ember default behavior when coming from dashboard\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('settings').set('badgeActive', true);\n      });\n    },\n\n    deactivate: function deactivate() {\n      var model = this.modelFor('badge').badge;\n      var badgeController = this.controllerFor('badge');\n\n      model.rollbackAttributes();\n      badgeController.set('isEditingBadgeCSS', false);\n      this.controllerFor('settings').set('badgeActive', false);\n    },\n\n    actions: {\n      willTransition: function willTransition(transition) {\n        //\n        // Use isDirty which is a CP on the controller not the\n        // model\n        //\n        if (this.controller.get('isDirty') && !window.confirm(\"You will lose any unsaved changes. Are you sure you want to continue?\")) {\n          transition.abort();\n        } else {\n          this.controller.send('rollback');\n          return true;\n        }\n      }\n    }\n  });\n\n});","define('garaje/routes/billing/index', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    controllerName: 'billing'\n  });\n\n});","define('garaje/routes/billing', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    titleToken: 'Billing',\n\n    beforeModel: function beforeModel(transition) {\n      if (!this.get('subscription.canAccessBilling')) {\n        transition.abort();\n        this.transitionTo('unauthorized');\n      }\n    },\n\n    model: function model() {\n      return this.get('subscription');\n    }\n  });\n\n});","define('garaje/routes/dashboard', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Dashboard',\n\n    queryParams: {\n      date: {\n        refreshModel: true\n      },\n      query: {\n        refreshModel: true\n      }\n    },\n\n    model: function model(params) {\n      params.location_id = this.get('currentLocation.id');\n      var entryParams = Ember['default'].copy(params);\n      entryParams.order = 'desc';\n      entryParams.sort_by = 'sign_in_time';\n\n      var entries = this.store.query('entry', entryParams);\n\n      return Ember['default'].RSVP.hash({\n        entries: entries\n      });\n    },\n\n    setupController: function setupController(controller, model) {\n      this._super(controller, model);\n      controller.set('entriesSettled', true);\n    },\n\n    renderTemplate: function renderTemplate() {\n      this._super();\n      this.render('dashboard/_nav', {\n        outlet: 'subnav'\n      });\n    },\n\n    activate: function activate() {\n      this._super();\n\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('application').set('dashboardActive', true);\n      });\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.controllerFor('application').set('dashboardActive', false);\n    },\n\n    actions: {\n      loading: function loading() {\n        this.controllerFor('dashboard').set('entriesSettled', false);\n        return false;\n      }\n    }\n  });\n\n});","define('garaje/routes/devices/index', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    redirect: function redirect() {\n      this.transitionTo('ipads');\n    }\n  });\n\n});","define('garaje/routes/devices', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    renderTemplate: function renderTemplate() {\n      this._super();\n      this.render('devices/_nav', {\n        outlet: 'subnav'\n      });\n    }\n  });\n\n});","define('garaje/routes/entry', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'moment'], function (exports, Ember, ResetScroll, IntercomUpdate, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: function titleToken() {\n      return this.controller.get('model.fullName') + ' · ' + moment['default'](this.controller.get('model.signInTime')).format('MM-DD-YYYY');\n    },\n\n    activate: function activate() {\n      this._super.apply(this, arguments);\n      //running in next run loop to avoid active getting removed by ember default behavior when coming from dashboard\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('application').set('dashboardActive', true);\n      });\n    },\n\n    renderTemplate: function renderTemplate() {\n      this._super.apply(this, arguments);\n      this.render('entry/_nav', {\n        outlet: 'subnav'\n      });\n    },\n\n    deactivate: function deactivate() {\n      this._super.apply(this, arguments);\n      this.controllerFor('application').set('dashboardActive', false);\n    }\n  });\n\n});","define('garaje/routes/i18n', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    model: function model() {\n      return this.get('currentLocation');\n    },\n\n    afterModel: function afterModel(model) {\n      model.set('isEditingI18n', true);\n    },\n\n    deactivate: function deactivate() {\n      this.controller.set('model.isEditingI18n', false);\n    },\n\n    // This is a hack to get deactivate to fire\n    // when the route is refreshed, when we\n    // switch between locations\n    beforeModel: function beforeModel() {\n      if (this.controller) {\n        this.deactivate();\n      }\n    },\n\n    actions: {\n      backToLocation: function backToLocation() {\n        this.transitionTo('location');\n      }\n    }\n  });\n\n});","define('garaje/routes/ipad', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'iPad Settings',\n\n    model: function model() {\n      return this.get('currentLocation.config');\n    },\n\n    afterModel: function afterModel(model) {\n      return this.store.findRecord('config', model.get('id'), {\n        reload: true\n      });\n    },\n\n    setupController: function setupController(controller, model) {\n      this._super(controller, model);\n      controller.set('currentDeliveryPerson', model.get('deliveryPerson'));\n    },\n\n    deactivate: function deactivate() {\n      this.controller.setProperties({\n        isEditingEmail: false,\n        isEditingDeliveries: false\n      });\n      this.controller.get('model.ndas').setEach('isEditing', false);\n    },\n\n    actions: {\n      willTransition: function willTransition(transition) {\n        //\n        // Use isDirty which is a CP on the controller not the\n        // model\n        //\n        if (this.controller.get('isDirty') && !window.confirm(\"You will lose any unsaved changes. Are you sure you want to continue?\")) {\n          transition.abort();\n        } else {\n          this.controller.send('rollback');\n          return true;\n        }\n      }\n    }\n  });\n\n});","define('garaje/routes/location', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Account Settings',\n\n    model: function model() {\n      return this.get('currentLocation');\n    },\n\n    renderTemplate: function renderTemplate() {\n      this._super();\n      this.render('location/-disabled', {\n        outlet: 'banner'\n      });\n    },\n\n    actions: {\n      backToLocation: function backToLocation() {\n        this.transitionTo('location');\n      }\n    }\n  });\n\n});","define('garaje/routes/login', ['exports', 'ember', 'garaje/config/environment', 'ember-simple-auth/mixins/unauthenticated-route-mixin', 'garaje/utils/url-builder'], function (exports, Ember, config, UnauthenticatedRouteMixin, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(UnauthenticatedRouteMixin['default'], {\n    title: 'Log in to Envoy',\n\n    beforeModel: function beforeModel(transition) {\n      if (this.get('localStorage.is_boss') === 'true') {\n        transition.abort();\n        var clientId = config['default'].clientId,\n            redirectUri = encodeURIComponent(config['default'].host + '/oauth.html'),\n            url = urlBuilder['default'].oauthAuthorizeUrl(clientId, redirectUri);\n\n        if (Ember['default'].testing) {\n          this._location = url;\n        } else {\n          window.location.replace(url);\n        }\n      }\n      this._super(transition);\n    }\n  });\n\n});","define('garaje/routes/new-location', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    title: 'Add New Location · Envoy',\n    locations: Ember['default'].inject.service(),\n\n    model: function model() {\n      // find an existing new location from a previous attempt\n      var newLocation = this.get('locations').findBy('isNew');\n\n      if (!newLocation) {\n        var company = this.get('currentLocation.company');\n        var admin = this.store.createFragment('adminFragment');\n        newLocation = this.store.createRecord('location', {\n          company: company,\n          newAdmin: admin\n        });\n      }\n\n      return newLocation;\n    },\n\n    deactivate: function deactivate() {\n      this.controller.setProperties({\n        validated: false,\n        inputAddressErrorMessage: null\n      });\n    },\n\n    renderTemplate: function renderTemplate() {\n      this._super();\n      this.render('new-location/-upgrade', {\n        outlet: 'banner'\n      });\n    }\n  });\n\n});","define('garaje/routes/not-found', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  var revisionRegexp = /^garaje\\:\\w+\\.html$/;\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Not Found',\n\n    beforeModel: function beforeModel(transition) {\n      if (revisionRegexp.test(transition.params['not-found'].path)) {\n        this.transitionTo('protected');\n      }\n    },\n\n    actions: {\n      goBack: function goBack() {\n        window.history.back();\n      }\n    }\n  });\n\n});","define('garaje/routes/notifications', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Notification Settings',\n\n    model: function model() {\n      return Ember['default'].RSVP.hash({\n        currentLocation: this.get('currentLocation'),\n        employees: this.store.query('employee', { limit: 1, location_id: this.get('currentLocation.id') })\n      });\n    },\n\n    setupController: function setupController(controller, model) {\n      controller.setProperties({\n        model: model.currentLocation,\n        employees: model.employees,\n        showBlankState: !model.currentLocation.get('hasNotificationEnabled')\n      });\n    }\n  });\n\n});","define('garaje/routes/plans', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Plans',\n    subscription: Ember['default'].inject.service(),\n\n    model: function model() {\n      return this.store.findAll('plan');\n    },\n\n    renderTemplate: function renderTemplate() {\n      var template = 'plans';\n\n      if (this.get('subscription.isFreePlanEnabled')) {\n        template = 'plans-under-free';\n      }\n\n      this.render(template);\n    }\n  });\n\n});","define('garaje/routes/pre-registered', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Pre-Registered',\n\n    subscription: Ember['default'].inject.service(),\n    currentLocation: Ember['default'].inject.service(),\n\n    queryParams: {\n      date: {\n        refreshModel: true\n      },\n      query: {\n        refreshModel: true\n      }\n    },\n\n    beforeModel: function beforeModel() {\n      if (!this.get('subscription.canAccessPreRegistration') || !this.get('currentLocation.preRegistrationEnabled')) {\n        this.transitionTo('dashboard');\n      }\n    },\n\n    model: function model(params) {\n      params.location_id = this.get('currentLocation.id');\n      var inviteParams = Ember['default'].copy(params);\n      inviteParams.order = 'asc';\n      inviteParams.sort_by = 'expected_arrival_time';\n\n      var invites = this.store.query('invite', inviteParams);\n\n      return Ember['default'].RSVP.hash({\n        invites: invites\n      });\n    },\n\n    renderTemplate: function renderTemplate() {\n      this._super();\n      this.render('dashboard/_nav', {\n        outlet: 'subnav'\n      });\n    },\n\n    activate: function activate() {\n      this._super();\n\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('application').set('dashboardActive', true);\n      });\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.controllerFor('application').set('dashboardActive', false);\n    }\n  });\n\n});","define('garaje/routes/pre-registration-upgrade', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Pre-Registration Upgrade',\n\n    activate: function activate() {\n      this._super();\n      //running in next run loop to avoid active getting removed by ember default behavior when coming from employees\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('settings').set('preRegistrationActive', true);\n      });\n    },\n\n    model: function model() {\n      return this.get('currentLocation');\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.controllerFor('settings').set('preRegistrationActive', false);\n    }\n  });\n\n});","define('garaje/routes/pre-registration', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Pre-Registration Settings',\n\n    beforeModel: function beforeModel(transition) {\n      this._super();\n      if (!this.get('subscription.canAccessPreRegistration')) {\n        this.controllerFor('subscribe').set('previousTransition', transition);\n      }\n      if (!this.get('currentLocation.preRegistrationEnabled')) {\n        this.transitionTo('pre-registration-upgrade');\n      }\n    },\n\n    model: function model() {\n      return this.get('currentLocation');\n    },\n\n    activate: function activate() {\n      this._super();\n      //running in next run loop to avoid active getting removed by ember default behavior when coming from dashboard\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('settings').set('preRegistrationActive', true);\n      });\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.controllerFor('settings').set('preRegistrationActive', false);\n    }\n\n  });\n\n});","define('garaje/routes/protected/index', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    redirect: function redirect() {\n      var self = this;\n\n      this.get('currentLocation.company').then(function (company) {\n        var onboardStatus = company.get('onboardingStatus');\n\n        if (onboardStatus === 'complete') {\n          self.transitionTo('dashboard');\n        } else {\n          var onboardingRoute = 'protected.onboarding.' + onboardStatus;\n          self.transitionTo(onboardingRoute);\n        }\n      });\n    }\n  });\n\n});","define('garaje/routes/protected', ['exports', 'ember', 'ember-simple-auth/mixins/authenticated-route-mixin', 'garaje/config/environment', 'garaje/utils/url-builder', 'moment'], function (exports, Ember, AuthenticatedRouteMixin, config, urlBuilder, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(AuthenticatedRouteMixin['default'], {\n    controllerName: 'application',\n    locations: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n\n    redirect: function redirect() {\n      var _this = this;\n\n      this.get('currentLocation.company').then(function (company) {\n        var onboardStatus = company.get('onboardingStatus');\n\n        if (onboardStatus !== 'complete') {\n          var onboardingRoute = 'protected.onboarding.' + onboardStatus;\n          _this.transitionTo(onboardingRoute);\n        }\n      });\n    },\n\n    title: function title(tokens) {\n      if (this.get('locations').get('length') > 1) {\n        tokens.unshift(this.get('currentLocation.nameWithCompanyName'));\n      }\n      return tokens.reverse().join(' · ') + ' · Envoy';\n    },\n\n    model: function model() {\n      var _this2 = this;\n\n      var currentLocation = this.get('currentLocation'),\n          currentAdmin = this.get('currentAdmin'),\n          subscription = this.get('subscription'),\n          self = this,\n          promises = [];\n\n      if (!currentLocation.get('content')) {\n        var locations = this.store.findAll('location');\n        promises.push(locations);\n\n        var locationsService = this.get('locations');\n\n        locations.then(function (locationsResult) {\n          locationsService.set('model', Ember['default'].A(locationsResult));\n\n          var location;\n\n          var currentLocationId = self.get('localStorage.current_location');\n          if (!Ember['default'].isBlank(currentLocationId)) {\n            location = locations.findBy('id', currentLocationId);\n          }\n\n          // location is now removed, remove the id from localStorage\n          // and fallback to the primary location or the first one\n          // in the array of locations\n          if (!location) {\n            self.set('localStorage.current_location', null);\n            location = locations.findBy('primary') || locations.get('firstObject');\n          }\n\n          currentLocation.set('content', location);\n        });\n      }\n\n      if (!currentAdmin.get('isFulfilled')) {\n        var adminUrl = urlBuilder['default'].v1.adminUrl();\n\n        var adminPromise = this.get('ajax').request(adminUrl).then(function (data) {\n          self.store.pushPayload('admin', data);\n          return self.store.findRecord('admin', data.admin.id);\n        }).then(function (admin) {\n          var props = admin.getProperties('id', 'name', 'email', 'createdAt', 'userHash');\n          var isBoss = _this2.controllerFor('application').get('isBoss');\n\n          if (window.Intercom && !isBoss) {\n            window.Intercom('boot', {\n              app_id: 'a060f68a48f5ac86ae516f2f146ecf2da1c261a9',\n              name: props.name,\n              user_id: props.id,\n              email: props.email,\n              created_at: props.createdAt,\n              user_hash: props.userHash\n            });\n          }\n\n          if (window.Rollbar) {\n            window.Rollbar.configure({ payload: { person: { id: props.id, email: props.email } } });\n          }\n\n          return admin;\n        });\n        currentAdmin.set('promise', adminPromise);\n        promises.push(adminPromise);\n      }\n\n      if (!subscription.get('isFulfilled')) {\n        var subscriptionUrl = urlBuilder['default'].v1.subscriptionUrl();\n\n        var subscriptionPromise = this.get('ajax').request(subscriptionUrl).then(function (data) {\n          // ember-data requires an id, we are providing one\n          // just to make it happy until support for singular\n          // resource lands\n          data.subscription.id = 'me';\n\n          // using pushPayload so that the serializer will run\n          self.store.pushPayload('subscription', data);\n          return self.store.findRecord('subscription', 'me');\n        });\n        subscription.set('promise', subscriptionPromise);\n        promises.push(subscriptionPromise);\n      }\n\n      return Ember['default'].RSVP.all(promises).then(function () {\n        if (config['default'].environment === 'test') {\n          return;\n        }\n\n        currentLocation.get('company').then(function (company) {\n          var params = [{ name: \"Company + Location\", value: [company.get('name'), currentLocation.get('name')].join(' ') }, { name: \"Name\", value: currentAdmin.get('name') }, { name: \"Email Address\", value: currentAdmin.get('email') }, { name: \"Time Zone\", value: currentLocation.get('timezone') }, { name: \"Company\", value: 'https://envoy-boss.herokuapp.com/locations/' + currentLocation.get('id') }, { name: \"Location\", value: currentLocation.get('id') }];\n\n          if (subscription.get('hasTrialDaysLeft')) {\n            params.push({ name: \"Trial End\", value: 'in ' + subscription.get('trialDaysLeft') + ' days' });\n          } else {\n            params.push({ name: \"Plan\", value: [subscription.get('plan'), subscription.get('period')].join('-') });\n          }\n\n          if (window.LC_API) {\n            if (window.LC_Invite) {\n              window.LC_API.set_custom_variables(params);\n            } else {\n              window.LC_API.on_after_load = function () {\n                window.LC_API.set_custom_variables(params);\n              };\n            }\n          } else {\n            window.LC_API = {};\n            window.LC_API.on_after_load = function () {\n              window.LC_API.set_custom_variables(params);\n            };\n          }\n        });\n      });\n    },\n\n    pubnub: Ember['default'].inject.service(),\n    integrationsManager: Ember['default'].inject.service(),\n\n    afterModel: function afterModel(model, transition) {\n      var _this3 = this;\n\n      this._super(model, transition);\n      var integrationsManager = this.get('integrationsManager');\n\n      var pubnub = this.get('pubnub').init(this.get('currentLocation.pubnubCipherKey'));\n      pubnub.subscribe({\n        channel: this.get('currentLocation.pubnubChannelIntegrations'),\n        message: function message(data) {\n          var payload = Ember['default'].$.parseJSON(data);\n\n          integrationsManager.handleEvent(payload, _this3.get('currentLocation'));\n        }\n      });\n      pubnub.subscribe({\n        channel: [this.get('currentLocation.pubnubChannelEntry'), this.get('currentLocation.pubnubChannelInvite')],\n        message: function message(m) {\n          var payload = Ember['default'].$.parseJSON(m);\n\n          if (payload.event) {\n            _this3.send('pushEntry', payload);\n          }\n\n          if (payload.type && payload.type === 'delete_invite') {\n            _this3.send('deleteInvite', payload);\n          } else if (payload.type) {\n            _this3.send('newInvite', payload);\n          }\n        }\n      });\n\n      var isBoss = this.controllerFor('application').get('isBoss');\n\n      if (window.analytics && !isBoss) {\n        var locationId = this.get('currentLocation.id');\n        window.analytics.alias(locationId);\n        window.analytics.identify(locationId, this.get('currentAdmin').getProperties('name', 'email'));\n      }\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.get('pubnub').unsubscribe({\n        channel: [this.get('currentLocation.pubnubChannelEntry'), this.get('currentLocation.pubnubChannelInvite')]\n      });\n    },\n\n    beforeModel: function beforeModel(transition) {\n      this._super(transition);\n      if (this.controller) {\n        this.deactivate();\n      }\n    },\n    actions: {\n      pushEntry: function pushEntry(payload) {\n        var dashboardController = this.controllerFor('dashboard');\n        var dashDate = dashboardController.get('date');\n        var query = dashboardController.get('query');\n\n        this.store.pushPayload('entry', { entry: payload.entry });\n        var entry = this.store.peekRecord('entry', payload.entry.id);\n        var newEntryTime = moment['default'](entry.get('signInTime')).format('YYYY-MM-DD');\n\n        if (dashboardController.get('model.entries')) {\n          var entries = dashboardController.get('model.entries').content;\n\n          if (payload.event === 'sign_in' && newEntryTime === dashDate && entries && !query) {\n            entries.unshiftObject(entry._internalModel);\n          }\n        }\n      },\n      deleteInvite: function deleteInvite(payload) {\n        var preRegisteredController = this.controllerFor('preRegistered');\n        var deletedInvite = this.store.peekRecord('invite', payload.invite_id);\n\n        if (preRegisteredController.get('model.invites')) {\n          var invites = preRegisteredController.get('model.invites').content;\n\n          if (invites) {\n            invites.removeObject(deletedInvite._internalModel);\n          }\n        }\n      },\n      newInvite: function newInvite(payload) {\n        var preRegisteredController = this.controllerFor('preRegistered');\n        var dashDate = preRegisteredController.get('date');\n\n        this.store.pushPayload('invite', { invite: payload.invite });\n\n        var invite = this.store.peekRecord('invite', payload.invite.id);\n        var newInviteTime = moment['default'](invite.get('expectedArrivalTime')).format('YYYY-MM-DD');\n\n        if (preRegisteredController.get('model.invites')) {\n          var invites = preRegisteredController.get('model.invites').content;\n\n          if (payload.type === 'new_invite' && newInviteTime === dashDate && invites) {\n            invites.addObject(invite._internalModel);\n          }\n        }\n      }\n    }\n  });\n\n});","define('garaje/routes/receptionist', ['exports', 'ember', 'garaje/mixins/editing-route'], function (exports, Ember, EditingRoute) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(EditingRoute['default'], {\n    model: function model() {\n      var location = this.get('currentLocation.content');\n      var receptionist = location.get('receptionist') || this.store.createFragment('receptionist');\n      if (!location.get('receptionist')) {\n        location.set('receptionist', receptionist);\n      }\n      return receptionist;\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      // This extra handling is for the case when there is no receptionist.\n      // Then we click on Enable, which adds the fragment, but then bail\n      // out without hitting save (doesn't matter if we filled name/email with\n      // any values). In the future, we will add a confirm at willTransition\n      // and prompt to save unsaved changes if the model is dirty.\n      var location = this.get('currentLocation');\n      if (location.get('hasDirtyAttributes')) {\n        location.rollbackAttributes();\n      }\n    }\n  });\n\n});","define('garaje/routes/settings/index', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    redirect: function redirect() {\n      this.transitionTo('location');\n    }\n  });\n\n});","define('garaje/routes/settings', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    renderTemplate: function renderTemplate() {\n      this._super();\n      this.render('settings/_nav', {\n        outlet: 'subnav'\n      });\n    }\n  });\n\n});","define('garaje/routes/subscribe', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    queryParams: {\n      period: {\n        replace: true\n      }\n    },\n\n    titleToken: 'Subscribe',\n\n    subscription: Ember['default'].inject.service(),\n\n    beforeModel: function beforeModel(transition) {\n      var isMissingParams = !transition.queryParams.plan || !transition.queryParams.period;\n      var isInvalidPlan = this.get('subscription.isFreePlanEnabled') && transition.queryParams.plan !== 'premium';\n\n      if (isMissingParams || isInvalidPlan) {\n        transition.abort();\n        this.transitionTo('plans');\n      }\n    },\n\n    model: function model(params) {\n      return this.store.findRecord('plan', params.plan);\n    },\n    actions: {\n      swapPeriod: function swapPeriod(isYearly) {\n        var period = 'monthly';\n        if (isYearly) {\n          period = 'yearly';\n        }\n\n        this.transitionTo({ queryParams: { period: period } });\n      }\n    }\n  });\n\n});","define('garaje/serializers/application', ['exports', 'active-model-adapter'], function (exports, active_model_adapter) {\n\n  'use strict';\n\n  exports['default'] = active_model_adapter.ActiveModelSerializer.extend({\n    isNewSerializerAPI: true\n  });\n\n});","define('garaje/serializers/config', ['exports', 'garaje/serializers/nested', 'ember-data'], function (exports, NestedSerializer, DS) {\n\n  'use strict';\n\n  exports['default'] = NestedSerializer['default'].extend(DS['default'].EmbeddedRecordsMixin, {\n    attrs: {\n      customFields: { serialize: 'records' }\n    }\n  });\n\n});","define('garaje/serializers/employees-filter', ['exports', 'garaje/serializers/v2'], function (exports, V2Serializer) {\n\n\t'use strict';\n\n\texports['default'] = V2Serializer['default'].extend({});\n\n});","define('garaje/serializers/google-app', ['exports', 'garaje/serializers/v2'], function (exports, V2Serializer) {\n\n\t'use strict';\n\n\texports['default'] = V2Serializer['default'].extend({});\n\n});","define('garaje/serializers/ifttt-integration', ['exports', 'garaje/serializers/v2'], function (exports, V2Serializer) {\n\n\t'use strict';\n\n\texports['default'] = V2Serializer['default'].extend({});\n\n});","define('garaje/serializers/leaderboard', ['exports', 'garaje/serializers/v2'], function (exports, V2Serializer) {\n\n\t'use strict';\n\n\texports['default'] = V2Serializer['default'].extend({});\n\n});","define('garaje/serializers/nested', ['exports', 'active-model-adapter', 'ember'], function (exports, active_model_adapter, Ember) {\n\n  'use strict';\n\n  exports['default'] = active_model_adapter.ActiveModelSerializer.extend({\n    /**\n      Generate a unique ID for a record hash\n       @param {DS.Store} store\n      @param {DS.Model} type\n      @param {Object} hash The record hash object\n      @return {String} The new ID\n    */\n    generateID: function generateID(store, type, hash) {\n      var id,\n          primaryKey,\n          serializer = store.serializerFor(type);\n\n      type._generatedIds = type._generatedIds || new Date().getTime();\n\n      // Get the ID property name\n      primaryKey = Ember['default'].get(serializer, 'primaryKey') || 'id';\n      id = hash[primaryKey];\n\n      // Generate ID\n      if (!id) {\n        id = 'gen-' + type.typeKey + '-' + ++type._generatedIds;\n        hash[primaryKey] = id;\n      }\n\n      return id;\n    },\n\n    /**\n      Sideload a record hash to the payload\n       @method sideloadRecord\n      @param {DS.Store} store\n      @param {DS.Model} type\n      @param {Object} payload The entire payload\n      @param {Object} hash    The record hash object\n      @return {Object} The ID of the record(s) sideloaded\n    */\n    sideloadRecord: function sideloadRecord(store, type, payload, hash) {\n      var id, sideLoadkey, sideloadArr;\n\n      // If hash is an array, sideload each item in the array\n      if (hash instanceof Array) {\n        id = [];\n        hash.forEach(function (item, i) {\n          id[i] = this.sideloadRecord(store, type, payload, item);\n        }, this);\n      } else if (typeof hash === 'object') {\n        // Sideload record\n        sideLoadkey = type.typeKey.pluralize(); // Sideloaded keys are plural\n        sideloadArr = payload[sideLoadkey] || []; // Get/create sideload array\n        id = this.generateID(store, type, hash);\n\n        // Sideload, if it's not already sideloaded\n        if (sideloadArr.findBy('id', id) === undefined) {\n          sideloadArr.push(hash);\n          payload[sideLoadkey] = sideloadArr;\n        }\n      } else {\n        // Assume it's already pointing to a sideloaded ID\n        id = hash;\n      }\n\n      return id;\n    },\n\n    /**\n      Process nested relationships on a single hash record\n       @method extractRelationships\n      @param {DS.Store} store\n      @param {DS.Model} type\n      @param {Object} payload The entire payload\n      @param {Object} hash    The hash for the record being processed\n      @return {Object} The updated hash object\n    */\n    processRelationships: function processRelationships(store, type, payload, hash) {\n      // If hash is an array, process each item in the array\n      if (hash instanceof Array) {\n        hash.forEach(function (item, i) {\n          hash[i] = this.processRelationships(store, type, payload, item);\n        }, this);\n      } else if (typeof hash === 'object') {\n        // Find all relationships in this model\n        type.eachRelationship(function (key, relationship) {\n          var payloadKey = this.keyForAttribute(key),\n              related = hash[payloadKey],\n              // The hash for this relationship\n          relType = relationship.type,\n              // The model type\n          typeSerializer = store.serializerFor(type);\n\n          if (typeSerializer.normalizeHash && typeSerializer.normalizeHash[key]) {\n            related = typeSerializer.normalizeHash[key](related); // The hash for this relationship\n          }\n\n          this.generateID(store, type, hash);\n          hash[key] = this.sideloadRecord(store, relType, payload, related);\n          this.processRelationships(store, relType, payload, related);\n        }, this);\n      }\n\n      return hash;\n    },\n\n    /**\n      (overloaded method)\n      Starts the deserialized of all payloads.\n       @method normalizePayload\n      @param {Object} payload\n      @return {Object} the normalized payload\n    */\n    extract: function extract(store, type, payload, id, requestType) {\n      var rootKeys = Object.keys(payload);\n\n      // Loop through root properties and process extract their relationships\n      rootKeys.forEach(function (key) {\n        var type = store.container.lookupFactory('model:' + key.singularize()),\n            hash = payload[key];\n\n        // If the key resolves to a model type, sideload any embedded relationships\n        if (type) {\n          this.processRelationships(store, type, payload, hash);\n        }\n      }, this);\n\n      return this._super(store, type, payload, id, requestType);\n    }\n  });\n\n});","define('garaje/serializers/okta-integration', ['exports', 'garaje/serializers/v2'], function (exports, V2Serializer) {\n\n\t'use strict';\n\n\texports['default'] = V2Serializer['default'].extend({});\n\n});","define('garaje/serializers/one-login', ['exports', 'garaje/serializers/v2'], function (exports, V2Serializer) {\n\n\t'use strict';\n\n\texports['default'] = V2Serializer['default'].extend({});\n\n});","define('garaje/serializers/salesforce-integration', ['exports', 'garaje/serializers/v2'], function (exports, V2Serializer) {\n\n\t'use strict';\n\n\texports['default'] = V2Serializer['default'].extend({});\n\n});","define('garaje/serializers/v2', ['exports', 'ember-data'], function (exports, DS) {\n\n\t'use strict';\n\n\tvar JSONAPISerializer = DS['default'].JSONAPISerializer;\n\n\texports['default'] = JSONAPISerializer.extend({});\n\n});","define('garaje/serializers/zapier-integration', ['exports', 'garaje/serializers/v2'], function (exports, V2Serializer) {\n\n\t'use strict';\n\n\texports['default'] = V2Serializer['default'].extend({});\n\n});","define('garaje/services/address-lookup', ['exports', 'ember', 'garaje/utils/geocode', 'garaje/utils/tzlookup'], function (exports, Ember, geocode, tzlookup) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Service.extend({\n    geocoder: geocode['default'],\n\n    geocodeErrorMap: Ember['default'].computed(function () {\n      var errorMap = {};\n      errorMap['ZERO_RESULTS'] = 'No results found for this address';\n      errorMap['OVER_QUERY_LIMIT'] = 'Maximum address lookup API reached, try again later';\n      errorMap['REQUEST_DENIED'] = 'Problem with lookup API, request denied';\n      errorMap['INVALID_REQUEST'] = 'Problem with lookup API, request invalid';\n      return errorMap;\n    }),\n\n    geocodeError: function geocodeError(errorCode) {\n      return this.get('geocodeErrorMap')[errorCode] || 'Unknown error ' + errorCode;\n    },\n\n    updateAddress: function updateAddress(inputAddress, model) {\n      if (Ember['default'].isBlank(inputAddress)) {\n        return Ember['default'].RSVP.reject('Enter an address');\n      }\n\n      var self = this;\n      var properties = {};\n\n      return this.get('geocoder')(inputAddress).then(function (data) {\n        var components = data.parsedAddress;\n\n        properties = {\n          latitude: data.latitude,\n          longitude: data.longitude,\n          address: inputAddress,\n          addressLine_1: components.line1,\n          city: components.city,\n          state: components.state,\n          zip: components.zip,\n          country: components.country_code\n        };\n\n        if (self.get('overwriteInputAddress')) {\n          properties.inputAddress = data.address;\n        }\n\n        return tzlookup['default'](data.latitude, data.longitude);\n      }).then(function (data) {\n        properties.timezone = data.timeZoneId;\n      })['catch'](function (errorCode) {\n        throw self.geocodeError(errorCode);\n      })['finally'](function () {\n        model.setProperties(properties);\n      });\n    }\n  });\n\n});","define('garaje/services/ajax', ['exports', 'ember', 'ember-ajax/services/ajax'], function (exports, Ember, AjaxService) {\n\n  'use strict';\n\n  exports['default'] = AjaxService['default'].extend({\n    session: Ember['default'].inject.service(),\n    headers: Ember['default'].computed({\n      get: function get() {\n        var session = this.get('session');\n        var headers = {\n          'Accept': 'application/json; charset=utf-8'\n        };\n\n        session.authorize('authorizer:application', function (headerName, headerValue) {\n          headers[headerName] = headerValue;\n        });\n\n        return headers;\n      }\n    }).volatile(),\n    normalizeErrorResponse: function normalizeErrorResponse(status, headers, payload) {\n      if (payload && typeof payload === 'object') {\n\n        //TODO-FIXME-API\n        if (!payload.error && payload.meta && payload.meta.message) {\n          payload.errors = [payload.meta.message];\n        }\n\n        return payload.errors || payload.error || payload;\n      } else {\n        return [{\n          status: '' + status,\n          title: \"The backend responded with an error\",\n          detail: '' + payload\n        }];\n      }\n    }\n  });\n\n});","define('garaje/services/current-admin', ['exports', 'ember'], function (exports, Ember) {\n\n\t'use strict';\n\n\texports['default'] = Ember['default'].Service.extend(Ember['default']._ProxyMixin, Ember['default'].PromiseProxyMixin);\n\n});","define('garaje/services/current-location', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var currentLocation = {};\n  ['save', 'rollbackAttributes', 'generateApiKey', 'generatePreRegistrationLink', 'generateSecurityDeskLink'].map(function (method) {\n    currentLocation[method] = function () {\n      var content = this.get('content');\n      return content[method].apply(content, arguments);\n    };\n  });\n\n  exports['default'] = Ember['default'].Service.extend(Ember['default']._ProxyMixin, currentLocation);\n\n});","define('garaje/services/google-sync-manager', ['exports', 'ember', 'garaje/utils/url-builder'], function (exports, Ember, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Service.extend({\n    integrationsManager: Ember['default'].inject.service(),\n    store: Ember['default'].inject.service(),\n    currentLocation: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n    loadFilter: function loadFilter(googleApp) {\n      var filter = {\n        attributes: Ember['default'].get(googleApp, 'filters'),\n        id: Ember['default'].get(googleApp, 'id'),\n        type: 'employees-filter'\n      };\n\n      var data = filter.attributes;\n\n      switch (data.type) {\n        case 'locations':\n          data.locations = data.data;\n          break;\n        case 'company':\n          data.query = data.data.query;\n          break;\n      }\n\n      var store = Ember['default'].get(this, 'store');\n\n      var employeeFilter = store.peekAll('employees-filter').get('firstObject');\n\n      if (employeeFilter) {\n        // Reset model so it doesn't show as dirty.\n\n        employeeFilter._internalModel.send('willCommit');\n        employeeFilter._internalModel._inFlightAttributes = employeeFilter._internalModel._attributes;\n        employeeFilter._internalModel._attributes = Object.create(null);\n        employeeFilter._internalModel.adapterDidCommit();\n      }\n\n      return store.push(filter);\n    },\n    sync: function sync() {\n      var _this = this;\n\n      return this.get('ajax').request(urlBuilder['default'].v2.employees.synchronizeUrl(), {\n        type: 'POST',\n        data: {}\n      }).then(function (response) {\n        var payload = {\n          id: _this.get('currentLocation.company.id'),\n          employeesSyncState: 'synchronizing',\n          employeesLastSyncAt: moment().toISOString()\n        };\n\n        _this.get('store').push(_this.get('store').normalize('company', payload));\n\n        return response;\n      });\n    },\n    setFilter: function setFilter(company, filter) {\n      var _this2 = this;\n\n      var data = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n      var googleApp = company.get('googleApp.content');\n      googleApp.set('filters.type', filter);\n      googleApp.set('filters.data', data);\n\n      return this.get('integrationsManager').saveGoogleApp(googleApp).then(function (googleApp) {\n        _this2.loadFilter(googleApp);\n\n        return googleApp;\n      });\n    },\n    companyFilter: function companyFilter(googleApp, query) {\n      var payload = {\n        data: {\n          query: query\n        }\n      };\n\n      return this.getUsers(googleApp.get('id'), payload);\n    },\n    locationsFilter: function locationsFilter(googleApp, locations, filters) {\n      var _this3 = this;\n\n      var promises = {};\n      var store = Ember['default'].get(this, 'store');\n\n      var resultObjects = filters.map(function (filter) {\n        var location = store.peekRecord('location', filter.location_id);\n\n        var payload = {\n          data: filter\n        };\n\n        promises[filter.location_id] = _this3.getUsers(googleApp.get('id'), payload);\n\n        return {\n          location: location.get('name'),\n          location_id: filter.location_id,\n          results: []\n        };\n      });\n\n      return Ember['default'].RSVP.hash(promises).then(function (queries) {\n        resultObjects.forEach(function (obj) {\n          obj.results = queries[obj.location_id];\n        });\n\n        return resultObjects;\n      });\n    },\n    getUsers: function getUsers(id, payload) {\n      return this.get('ajax').request(urlBuilder['default'].v2.integrations.googleAppUsersUrl(id), {\n        data: payload,\n        contentType: 'application/json'\n      }).then(function (response) {\n        var users = response.data;\n\n        users.forEach(function (user) {\n          user.phone_number = user.phones.mapBy('value').join(', ');\n        });\n\n        return users;\n      });\n    }\n\n  });\n\n});","define('garaje/services/integrations-manager', ['exports', 'ember', 'garaje/utils/url-builder', 'garaje/utils/oauth', 'garaje/utils/child-window', 'garaje/utils/get-hostname'], function (exports, Ember, urlBuilder, oauth, childWindow, getHostname) {\n\n  'use strict';\n\n  var singularize = Ember['default'].String.singularize;\n\n  var GOOGLE_APPS_ERRORS = {\n    insufficientAccess: 'oauth.insufficient_access',\n    otherProviderEnabled: 'oauth.other_provider_enabled'\n  };\n\n  exports['default'] = Ember['default'].Service.extend({\n    GOOGLE_APPS_ERRORS: GOOGLE_APPS_ERRORS,\n    syncManager: Ember['default'].inject.service(),\n    googleSyncManager: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n    childWindow: childWindow['default'],\n    store: Ember['default'].inject.service(),\n    subscription: Ember['default'].inject.service(),\n    pushIntegration: function pushIntegration(type, data) {\n      var store = Ember['default'].get(this, 'store');\n\n      return store.push(store.normalize(type, data));\n    },\n    loadZapier: function loadZapier() {\n      var _this = this;\n\n      return this.get('ajax').request(urlBuilder['default'].v2.integrations.zapierIntegrationsUrl()).then(function (response) {\n        var payload = response.data[0];\n\n        if (payload) {\n          _this.pushIntegration('zapier-integration', payload);\n        }\n\n        return response;\n      });\n    },\n    loadIfttt: function loadIfttt() {\n      var _this2 = this;\n\n      return this.get('ajax').request(urlBuilder['default'].v2.integrations.iftttIntegrationsUrl()).then(function (response) {\n        var payload = response.data[0];\n\n        if (payload) {\n          _this2.pushIntegration('ifttt-integration', payload);\n        }\n\n        return response;\n      });\n    },\n    loadIntegration: function loadIntegration(company) {\n      var _this3 = this;\n\n      return company.then(function (company) {\n        // hipchatConnection should be included in integrations\n        if (company.get('hipchatConnected')) {\n          _this3.pushIntegration('hipchat-connection', {\n            id: company.get('id'),\n            connected: true,\n            company_id: company.id\n          });\n        }\n\n        return _this3.get('ajax').request(urlBuilder['default'].v2.integrations.enabled()).then(function (response) {\n          response.data.forEach(function (integration) {\n            _this3.pushIntegration(singularize(integration.type), integration);\n          });\n        });\n      });\n    },\n    authManager: function authManager(url, width, height) {\n      return oauth['default'](url, width, height);\n    },\n\n    // Google Apps\n    saveGoogleApp: function saveGoogleApp(googleApp) {\n      return googleApp.save();\n    },\n    connectGoogleApps: function connectGoogleApps(company) {\n      var _this4 = this;\n\n      var promise = this.authManager(urlBuilder['default'].googleAuthUrl(), 750, 750);\n\n      return promise.then(function (response) {\n        return company.then(function () {\n          _this4.pushIntegration('google-app', response.data);\n\n          return response;\n        });\n      });\n    },\n    disconnectGoogleApps: function disconnectGoogleApps(company) {\n      var connection = Ember['default'].get(company, 'googleApp.content');\n\n      return connection.destroyRecord().then(function () {\n        connection.unloadRecord();\n      });\n    },\n    enableGoogleApps: function enableGoogleApps(company) {\n      var connection = company.get('googleApp.content');\n      connection.set('enabled', true);\n\n      return this.saveGoogleApp(connection);\n    },\n    disableGoogleApps: function disableGoogleApps(company) {\n      var connection = company.get('googleApp.content');\n      connection.set('enabled', false);\n\n      return this.saveGoogleApp(connection);\n    },\n\n    // Slack\n\n    connectSlack: function connectSlack(location) {\n      var company = location.get('company.content');\n\n      return this.authManager(urlBuilder['default'].slackAuthUrl(), 750, 750).then(function (data) {\n\n        location.set('slackNotificationEnabled', true);\n\n        company.setProperties({\n          slackConnected: true,\n          slackTeamName: data.team_name\n        });\n\n        location.save();\n        company.save();\n\n        return data;\n      });\n    },\n    disconnectSlack: function disconnectSlack(location) {\n      var company = location.get('company.content');\n\n      location.set('slackNotificationEnabled', false);\n      company.set('slackConnected', false);\n\n      return Ember['default'].RSVP.all([location.save(), company.save()]);\n    },\n\n    // HipChat\n\n    connectHipchat: function connectHipchat(location) {\n      var company = location.get('company.content');\n      // hipchat isn't really connected yet, since there's a\n      // pre-step of setting a hipchat server url and grabbing\n      // your envoy API key\n      var store = this.get('store');\n\n      var connection = store.createRecord('hipchat-connection', {\n        company: company\n      });\n\n      return Ember['default'].RSVP.resolve(connection);\n    },\n\n    disconnectHipchat: function disconnectHipchat(location) {\n      var company = location.get('company.content');\n      var store = this.get('store');\n\n      company.set('hipchatConnected', false);\n\n      return company.save().then(function (data) {\n        store.push(store.normalize('location', {\n          id: location.get('id'),\n          hipchat_notification_enabled: false\n        }));\n        store.unloadAll('hipchat-connection');\n\n        return data;\n      });\n    },\n\n    loadHipchat: function loadHipchat(location, data) {\n      var company = undefined,\n          hipchatConnection = undefined;\n\n      if (data) {\n        company = location.get('company.content');\n        hipchatConnection = this.pushIntegration('hipchat-connection', data);\n\n        company.set('hipchatConnection', hipchatConnection);\n        var store = this.get('store');\n\n        store.push(store.normalize('location', {\n          id: location.get('id'),\n          hipchat_notification_enabled: true\n        }));\n      }\n\n      return hipchatConnection;\n    },\n\n    setupHipchat: function setupHipchat(hipchatConnection) {\n      var _this5 = this;\n\n      var hostname = getHostname['default'](hipchatConnection.get('hipchatServerDomain')) || 'hipchat.com';\n      var url = 'https://' + hostname + '/admin/addons?install_key=com.signwithenvoy.addon';\n      var company = hipchatConnection.get('company');\n\n      return this.childWindow(url, 1100, 800)['catch'](function () {\n        company.get('content').reload().then(function () {\n          _this5.loadIntegration(company);\n        });\n      });\n    },\n\n    // Salesforce\n    connectSalesforce: function connectSalesforce(company) {\n      var store = this.get('store');\n      return this.authManager(urlBuilder['default'].salesforceAuthUrl(), 750, 750).then(function (data) {\n        var integration = store.createRecord('salesforce-integration', {\n          company: company,\n          salesforceAccessGrantId: data.salesforce_access_grant_id\n        });\n        return integration.save();\n      })['catch'](function (error) {\n        store.unloadAll('salesforce-integration');\n        throw error;\n      });\n    },\n    disconnectSalesforce: function disconnectSalesforce(company) {\n      var integration = Ember['default'].get(company, 'salesforceIntegration.content');\n\n      return integration.destroyRecord().then(function () {\n        integration.unloadRecord();\n      });\n    },\n\n    // zapier\n    connectZapier: function connectZapier() {\n      var url = 'https://zapier.com/zapbook/envoy/';\n      return this.childWindow(url, 1100, 800);\n    },\n    connectIfttt: function connectIfttt() {\n      var url = 'https://ifttt.com/envoy';\n      return this.childWindow(url, 1100, 800);\n    },\n\n    // pubnub messages\n\n    handleEvent: function handleEvent(payload, location) {\n      var company = location.get('company.content');\n\n      switch (payload.provider) {\n        case 'google_apps':\n          this.get('syncManager').syncMessage(payload, company);\n          break;\n        case 'one_login':\n          this.get('syncManager').syncMessage(payload, company);\n          break;\n        case 'okta':\n          switch (payload.state) {\n            case 'preview_completed':\n              this.get('syncManager').trigger('okta#preview_completed', payload.users);\n              break;\n            default:\n              this.get('syncManager').syncMessage(payload, company);\n              break;\n          }\n          break;\n        case 'zapier':\n          switch (payload.state) {\n            case 'bearer_token_issued':\n              this.loadZapier();\n              break;\n          }\n          break;\n        case 'hipchat':\n          switch (payload.state) {\n            case 'connected':\n              var data = {\n                id: company.get('id'),\n                connected: true,\n                company: company\n              };\n\n              this.loadHipchat(location, data);\n\n              break;\n            case 'disconnected':\n              this.get('store').unloadAll('hipchat-connection');\n              company.reload();\n              break;\n          }\n          break;\n      }\n    },\n\n    // helpers\n    getIntegrations: function getIntegrations(location) {\n      var company = location.get('company.content');\n\n      var integrations = [location.get('webhook.content'), location.get('company.saml.content'), location.get('company.salesforceIntegration.content'), company.get('slackConnection'), company.get('hipchatConnection.content'), company.get('zapierIntegration.content'), company.get('iftttIntegration.content'), company.get('googleApp.content'), company.get('oneLogin.content'), company.get('oktaIntegration.content'), company.get('gtalkEnabled') || null];\n\n      return integrations.compact();\n    },\n    hasDirtyIntegrations: function hasDirtyIntegrations(location) {\n      var integrations = this.getIntegrations(location);\n\n      return integrations.any(function (integration) {\n        var isDirty = false;\n\n        if (integration.get) {\n          isDirty = integration.get('isNew') || integration.get('hasDirtyAttributes');\n        }\n\n        return isDirty;\n      });\n    },\n    cleanIntegrations: function cleanIntegrations(location) {\n      var integrations = this.getIntegrations(location);\n\n      return integrations.forEach(function (integration) {\n        if (Ember['default'].get(integration, 'isNew')) {\n          integration.destroyRecord();\n        } else if (Ember['default'].get(integration, 'isDirty')) {\n          integration.rollbackAttributes();\n        }\n      });\n    }\n  });\n\n});","define('garaje/services/liquid-fire-modals', ['exports', 'liquid-fire/modals'], function (exports, Modals) {\n\n\t'use strict';\n\n\texports['default'] = Modals['default'];\n\n});","define('garaje/services/liquid-fire-transitions', ['exports', 'liquid-fire/transition-map'], function (exports, TransitionMap) {\n\n\t'use strict';\n\n\texports['default'] = TransitionMap['default'];\n\n});","define('garaje/services/local-storage', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Service.extend({\n    unknownProperty: function unknownProperty(key) {\n      return localStorage[key];\n    },\n\n    setUnknownProperty: function setUnknownProperty(key, value) {\n      localStorage[key] = value;\n      this.notifyPropertyChange(key);\n      return value;\n    }\n  });\n\n});","define('garaje/services/locations', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Service.extend(Ember['default'].ArrayProxy.prototype, {\n    model: [],\n    sortProperties: ['sortablePrimary', 'nameWithCompanyName'],\n    content: Ember['default'].computed.sort('model', 'sortProperties'),\n    persisted: Ember['default'].computed.filterBy('content', 'isNew', false),\n    active: Ember['default'].computed.filterBy('persisted', 'disabled', false)\n  });\n\n});","define('garaje/services/message-bus', ['exports', 'ember'], function (exports, Ember) {\n\n\t'use strict';\n\n\texports['default'] = Ember['default'].Service.extend(Ember['default'].Evented, {});\n\n});","define('garaje/services/pubnub', ['exports', 'ember', 'garaje/config/environment'], function (exports, Ember, config) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Service.extend({\n    init: function init(cipherKey) {\n      var pubnub = undefined;\n\n      if (config['default'].environment === 'test') {\n        pubnub = this.get('_pubnub') || {};\n        pubnub.subscribe = function (_ref) {\n          var channel = _ref.channel;\n          var message = _ref.message;\n\n          if (channel) {\n            var key = channel;\n            if (Ember['default'].isArray(channel)) {\n              key = channel.join('');\n            }\n\n            // let's register this message so we can mock\n            // messages\n            pubnub[key] = message;\n          }\n        };\n        pubnub.unsubscribe = Ember['default'].K;\n      } else {\n        pubnub = window.PUBNUB.init({\n          subscribe_key: config['default'].subscribeKey,\n          cipher_key: cipherKey,\n          origin: 'pubsub.pubnub.com',\n          ssl: true\n        });\n      }\n\n      this.set('_pubnub', pubnub);\n\n      return this;\n    },\n\n    subscribe: function subscribe() {\n      this.get('_pubnub').subscribe.apply(this, arguments);\n    },\n\n    unsubscribe: function unsubscribe() {\n      this.get('_pubnub').unsubscribe.apply(this, arguments);\n    }\n  });\n\n});","define('garaje/services/session', ['exports', 'ember-simple-auth/services/session'], function (exports, SessionService) {\n\n\t'use strict';\n\n\texports['default'] = SessionService['default'];\n\n});","define('garaje/services/subscription', ['exports', 'ember'], function (exports, Ember) {\n\n\t'use strict';\n\n\texports['default'] = Ember['default'].Service.extend(Ember['default']._ProxyMixin, Ember['default'].PromiseProxyMixin);\n\n});","define('garaje/services/sync-manager', ['exports', 'ember', 'garaje/utils/url-builder', 'moment'], function (exports, Ember, urlBuilder, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Service.extend(Ember['default'].Evented, {\n    ajax: Ember['default'].inject.service(),\n    store: Ember['default'].inject.service(),\n    currentLocation: Ember['default'].inject.service(),\n    sync: function sync() {\n      var _this = this;\n\n      return this.get('ajax').request(urlBuilder['default'].v2.employees.synchronizeUrl(), {\n        type: 'POST',\n        data: {}\n      }).then(function (response) {\n        var payload = {\n          id: _this.get('currentLocation.company.id'),\n          employeesSyncState: 'synchronizing',\n          employeesLastSyncAt: moment['default']().toISOString()\n        };\n\n        var store = _this.get('store');\n\n        store.push(store.normalize('company', payload));\n\n        return response;\n      });\n    },\n    companyFilter: function companyFilter(integration, query) {\n      var payload = {\n        data: {\n          query: query\n        }\n      };\n\n      return this.getUsers(integration, payload);\n    },\n    locationsFilter: function locationsFilter(integration, query) {\n      var payload = {\n        data: {\n          query: query\n        }\n      };\n\n      return this.getUsers(integration, payload);\n    },\n    getUsers: function getUsers(integration, payload) {\n      return this.get('ajax').request(this.usersUrl(integration), {\n        data: payload,\n        contentType: 'application/json'\n      }).then(function (response) {\n        var users = response.data;\n\n        users.forEach(function (user) {\n          var phone = user.phone || (user.phones || []).mapBy('value').join(', ');\n          user.phone_number = phone;\n        });\n\n        return users;\n      });\n    },\n    usersUrl: function usersUrl(integration) {\n      var url = undefined,\n          id = integration.get('id');\n\n      switch (integration.constructor.typeKey.dasherize()) {\n        case 'one-login':\n          url = urlBuilder['default'].v2.integrations.oneLoginUsersUrl(id);\n          break;\n        case 'okta-integration':\n          url = urlBuilder['default'].v2.integrations.oktaUsersUrl(id);\n          break;\n      }\n\n      return url;\n    },\n    syncMessage: function syncMessage(data, company) {\n      var payload = {\n        id: company.get('id'),\n        employeesSyncState: data.state\n      };\n\n      var store = Ember['default'].get(this, 'store');\n\n      if (data.last_sync_at && data.state === 'finished') {\n        payload.employeesLastSyncAt = data.last_sync_at;\n      }\n\n      store.push(store.normalize('company', payload));\n    }\n  });\n\n});","define('garaje/services/validations', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  var set = Ember['default'].set;\n\n  exports['default'] = Ember['default'].Service.extend({\n    init: function init() {\n      set(this, 'cache', {});\n    }\n  });\n\n});","define('garaje/settings/integrations/controller', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    integrationsManager: Ember['default'].inject.service(),\n\n    //\n    // 10-14-2015 - Adolfo Builes\n    // TODO: meeh, we should do this better? probably have it only in the\n    // integration manager service?\n    //\n    hasIntegrations: Ember['default'].computed('currentLocation.company.googleApp.content', 'currentLocation.company.saml.content', 'currentLocation.company.hipchatConnection.content', 'currentLocation.webhook.content', 'currentLocation.company.content.slackConnected', 'currentLocation.company.zapierIntegration.content', 'currentLocation.company.iftttIntegration.content', 'currentLocation.company.salesforceIntegration.content', 'currentLocation.company.oneLogin.content', 'currentLocation.company.oktaIntegration.content', 'currentLocation.company.gtalkEnabled', {\n      get: function get() {\n        return this.get('integrationsManager').getIntegrations(this.get('currentLocation')).length > 0;\n      }\n    }).readOnly()\n  });\n\n});","define('garaje/settings/integrations/enabled/controller', ['exports', 'ember', 'garaje/utils/flash-promise'], function (exports, Ember, flashPromise) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Controller.extend({\n    queryParams: ['integration'],\n    integration: '',\n\n    actions: {\n      setIntegration: function setIntegration(integration) {\n        this.set('integration', integration);\n      },\n      clearIntegration: function clearIntegration() {\n        this.set('integration', '');\n      },\n      saveDirectoryProvider: function saveDirectoryProvider(model) {\n        var _this = this;\n\n        var promise = model.save().then(function () {\n          return _this.transitionToRoute('sync-settings');\n        });\n\n        flashPromise['default'](promise, this);\n\n        return promise;\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/enabled/route', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    titleToken: 'Enabled Integrations',\n    integrationsManager: Ember['default'].inject.service(),\n\n    afterModel: function afterModel() {\n      if (!this.integrations().length) {\n        this.transitionTo('settings.integrations.index');\n      }\n    },\n\n    deactivate: function deactivate() {\n      this.set('controller.integration', '');\n    },\n    confirmAction: function confirmAction() {\n      return window.confirm('You will lose any unsaved changes. Are you sure you want to continue?');\n    },\n    integrations: function integrations() {\n      return this.get('integrationsManager').getIntegrations(this.get('currentLocation'));\n    },\n\n    actions: {\n      integrationDisconnected: function integrationDisconnected() {\n        var reloadCompany = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\n        var integrations = this.integrations();\n        if (integrations.length) {\n          window.scrollTo(0, 0);\n        } else {\n          this.transitionTo('settings.integrations.index');\n        }\n\n        if (reloadCompany) {\n          this.get('currentLocation.company.content').reload();\n        }\n      },\n      willTransition: function willTransition(transition) {\n        var currentLocation = this.get('currentLocation');\n        var hasDirtyIntegrations = this.get('integrationsManager').hasDirtyIntegrations(currentLocation);\n\n        if (hasDirtyIntegrations) {\n          if (this.confirmAction()) {\n            this.get('integrationsManager').cleanIntegrations(currentLocation);\n\n            return true;\n          } else {\n            transition.abort();\n\n            return false;\n          }\n        } else {\n          return true;\n        }\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/enabled/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 106,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/enabled/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2 mt3\");\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el3,\"class\",\"\");\n        var el4 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1, 1]);\n        var morphs = new Array(11);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(element0,3,3);\n        morphs[2] = dom.createMorphAt(element0,5,5);\n        morphs[3] = dom.createMorphAt(element0,7,7);\n        morphs[4] = dom.createMorphAt(element0,9,9);\n        morphs[5] = dom.createMorphAt(element0,11,11);\n        morphs[6] = dom.createMorphAt(element0,13,13);\n        morphs[7] = dom.createMorphAt(element0,15,15);\n        morphs[8] = dom.createMorphAt(element0,17,17);\n        morphs[9] = dom.createMorphAt(element0,19,19);\n        morphs[10] = dom.createMorphAt(element0,21,21);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"settings/integrations/zapier-config-box\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation\",[\"loc\",[null,[5,17],[5,32]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[6,20],[6,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[4,8],[11,10]]]],\n        [\"inline\",\"settings/integrations/ifttt-config-box\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation\",[\"loc\",[null,[14,17],[14,32]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[15,20],[15,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[13,8],[20,10]]]],\n        [\"inline\",\"settings/integrations/google-apps-config-box\",[],[\"company\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.content\",[\"loc\",[null,[23,16],[23,47]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[24,20],[24,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[22,8],[29,10]]]],\n        [\"inline\",\"settings/integrations/one-login-config-box\",[],[\"oneLogin\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.oneLogin.content\",[\"loc\",[null,[32,17],[32,57]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[33,20],[33,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"save\",[\"subexpr\",\"action\",[\"saveDirectoryProvider\"],[],[\"loc\",[null,[36,13],[36,45]]]],\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[31,8],[38,10]]]],\n        [\"inline\",\"settings/integrations/okta-config-box\",[],[\"okta\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.oktaIntegration.content\",[\"loc\",[null,[41,13],[41,60]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[42,20],[42,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\",\"save\",[\"subexpr\",\"action\",[\"saveDirectoryProvider\"],[],[\"loc\",[null,[47,13],[47,45]]]]],[\"loc\",[null,[40,8],[48,10]]]],\n        [\"inline\",\"settings/integrations/saml-config-box\",[],[\"saml\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.saml.content\",[\"loc\",[null,[51,13],[51,49]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[52,20],[52,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[50,8],[57,10]]]],\n        [\"inline\",\"settings/integrations/webhook-config-box\",[],[\"webhook\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.webhook.content\",[\"loc\",[null,[60,16],[60,47]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[61,20],[61,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[59,8],[66,10]]]],\n        [\"inline\",\"settings/integrations/slack-config-box\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation\",[\"loc\",[null,[69,17],[69,32]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[70,20],[70,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[68,8],[75,10]]]],\n        [\"inline\",\"settings/integrations/hipchat-config-box\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation\",[\"loc\",[null,[78,17],[78,32]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[79,20],[79,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[77,8],[84,10]]]],\n        [\"inline\",\"settings/integrations/google-hangouts-config-box\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation\",[\"loc\",[null,[87,17],[87,32]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[88,20],[88,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[86,8],[93,10]]]],\n        [\"inline\",\"settings/integrations/salesforce-config-box\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation\",[\"loc\",[null,[96,17],[96,32]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[97,20],[97,31]]]]],[],[]],\"openAction\",\"setIntegration\",\"closeAction\",\"clearIntegration\",\"flashPromise\",\"flashPromise\",\"integrationDisconnected\",\"integrationDisconnected\"],[\"loc\",[null,[95,8],[102,10]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/settings/integrations/google-apps-config-box/component', ['exports', 'ember', 'moment'], function (exports, Ember, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: '', // don't wrap content in html tag,\n    integrationsManager: Ember['default'].inject.service(),\n    integrationData: Ember['default'].computed.alias('company.googleApp'),\n    connected: Ember['default'].computed.alias('integrationData.connected'),\n    enabled: Ember['default'].computed.alias('integrationData.enabled'),\n    domain: Ember['default'].computed.alias('integrationData.domain'),\n    isOpen: Ember['default'].computed.equal('integration', 'googleApp'),\n    connectedBy: Ember['default'].computed.alias('integrationData.connectedBy'),\n    createdAt: Ember['default'].computed('integrationData.createdAt', {\n      get: function get() {\n        return moment['default'](this.get('integrationData.createdAt')).format('MMMM D, YYYY');\n      }\n    }).readOnly(),\n    close: function close() {\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'googleApp');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    actions: {\n      disconnect: function disconnect(callback) {\n        var _this = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        var promise = this.get('integrationsManager').disconnectGoogleApps(this.get('company')).then(function () {\n          _this.close();\n          _this.sendAction('integrationDisconnected', true);\n        });\n\n        callback(promise);\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      },\n      disable: function disable() {\n        var promise = this.get('integrationsManager').disableGoogleApps(this.get('company'));\n\n        this.sendAction('flashPromise', promise);\n        return promise;\n      },\n      enable: function enable() {\n        var promise = this.get('integrationsManager').enableGoogleApps(this.get('company'));\n\n        this.sendAction('flashPromise', promise);\n        return promise;\n      },\n      toggleEnable: function toggleEnable(isEnable) {\n        if (isEnable) {\n          this.send('enable');\n        } else {\n          this.send('disable');\n        }\n      },\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      },\n      showFlash: function showFlash(type, message) {\n        this.sendAction('showFlash', type, message);\n      },\n      hideFlash: function hideFlash() {\n        this.sendAction('hideFlash');\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/google-apps-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 9\n              },\n              \"end\": {\n                \"line\": 12,\n                \"column\": 9\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/google-apps-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"           Syncing employees from \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"b\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" every hour on the hour\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"domain\",[\"loc\",[null,[11,37],[11,47]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 12,\n                \"column\": 9\n              },\n              \"end\": {\n                \"line\": 14,\n                \"column\": 9\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/google-apps-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"           Syncing employees from \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"b\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" manually\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"domain\",[\"loc\",[null,[13,37],[13,47]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 18,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 22,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/google-apps-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n              var el2 = dom.createTextNode(\"\\n            Configure\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element4 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element4);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[19,46],[19,63]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 23,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/google-apps-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"unless\",[[\"get\",\"isOpen\",[\"loc\",[null,[18,18],[18,24]]]]],[],0,null,[\"loc\",[null,[18,8],[22,19]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child3 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 32,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 32,\n                  \"column\": 110\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/google-apps-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"Employee Directory ›\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 26,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 64,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/google-apps-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3 js-integration\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h4\");\n            var el3 = dom.createTextNode(\"Configurable Actions\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"span\");\n            dom.setAttribute(el3,\"class\",\"flex flex-center\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"span\");\n            dom.setAttribute(el4,\"class\",\"flex-auto\");\n            var el5 = dom.createTextNode(\"Sync your Google Apps users with Employee Directory\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"span\");\n            dom.setAttribute(el3,\"class\",\"flex flex-center\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"span\");\n            dom.setAttribute(el4,\"class\",\"flex-auto\");\n            var el5 = dom.createTextNode(\"Automatically sync every hour on the hour\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"label\");\n            dom.setAttribute(el4,\"class\",\"toggle u-right\");\n            var el5 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"span\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"flex flex-center py2\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"img\");\n            dom.setAttribute(el3,\"src\",\"assets/images/integrations/googleapps@2x.png\");\n            dom.setAttribute(el3,\"style\",\"width:40px;height:40px\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"flex-auto p2\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"h4\");\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            dom.setAttribute(el4,\"class\",\"m0\");\n            var el5 = dom.createTextNode(\"Connected by \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"b\");\n            var el6 = dom.createComment(\"\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\" on \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var element1 = dom.childAt(element0, [7]);\n            var element2 = dom.childAt(element1, [3]);\n            var element3 = dom.childAt(element2, [3]);\n            var morphs = new Array(6);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [3, 1]),3,3);\n            morphs[1] = dom.createMorphAt(dom.childAt(element0, [5, 1, 3]),1,1);\n            morphs[2] = dom.createMorphAt(dom.childAt(element2, [1]),0,0);\n            morphs[3] = dom.createMorphAt(dom.childAt(element3, [1]),0,0);\n            morphs[4] = dom.createMorphAt(element3,3,3);\n            morphs[5] = dom.createMorphAt(element1,5,5);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"link-to\",[\"sync-settings\"],[\"class\",\"btn btn--small btn--blue flex-none\"],0,null,[\"loc\",[null,[32,12],[32,122]]]],\n            [\"inline\",\"checkbox-with-action\",[],[\"class\",\"js-integrations-google-apps-enable\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"enabled\",[\"loc\",[null,[41,22],[41,29]]]]],[],[]],\"action\",\"toggleEnable\"],[\"loc\",[null,[39,14],[43,16]]]],\n            [\"content\",\"domain\",[\"loc\",[null,[52,16],[52,26]]]],\n            [\"content\",\"connectedBy\",[\"loc\",[null,[53,42],[53,57]]]],\n            [\"content\",\"createdAt\",[\"loc\",[null,[53,65],[53,78]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\",\"reset\",true],[\"loc\",[null,[55,10],[61,12]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 66,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/google-apps-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-google-apps-config\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/googleapps.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Google Apps\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"        \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element5 = dom.childAt(fragment, [1]);\n          var element6 = dom.childAt(element5, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element6, [3, 3]),1,1);\n          morphs[1] = dom.createMorphAt(element6,5,5);\n          morphs[2] = dom.createMorphAt(element5,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"enabled\",[\"loc\",[null,[10,15],[10,22]]]]],[],0,1,[\"loc\",[null,[10,9],[14,16]]]],\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[17,33],[17,37]]]]],[],[]]],2,null,[\"loc\",[null,[17,6],[23,27]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[26,17],[26,23]]]]],[\"class\",\"js-tokenized\"],3,null,[\"loc\",[null,[26,4],[64,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 67,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/google-apps-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[66,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/google-hangouts-config-box/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    integrationsManager: Ember['default'].inject.service(),\n\n    company: Ember['default'].computed.alias('location.company.content'),\n    connected: Ember['default'].computed.alias('company.gtalkEnabled'),\n    isOpen: Ember['default'].computed.equal('integration', 'google-hangouts'),\n\n    close: function close() {\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'google-hangouts');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n\n    actions: {\n      toggleLocation: function toggleLocation(isEnable) {\n        if (isEnable) {\n          this.send('enable');\n        } else {\n          this.send('disable');\n        }\n      },\n      disable: function disable() {},\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      },\n      disconnect: function disconnect(callback) {\n        var _this = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        this.set('company.gtalkEnabled', false);\n        var promise = this.get('company').save().then(function () {\n          _this.sendAction('integrationDisconnected');\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/google-hangouts-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 11,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 13,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/google-hangouts-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element1);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"close\"],[],[\"loc\",[null,[12,11],[12,29]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/google-hangouts-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue mr1\");\n            var el2 = dom.createTextNode(\"\\n          Configure\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element0);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[14,48],[14,65]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 20,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 34,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/google-hangouts-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"p\");\n            var el3 = dom.createElement(\"code\");\n            var el4 = dom.createTextNode(\"im@signwithenvoy.com\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\" will send an instant message to your employees every time their visitor arrives.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"flex flex-center py2\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 3]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disable\",\"pending\",\"Disabling...\",\"reset\",true],[\"loc\",[null,[25,10],[31,12]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 36,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/google-hangouts-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-google-hangouts-config\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/googlehangouts.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Google Hangouts\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Enabled\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element2, [1]),5,5);\n          morphs[1] = dom.createMorphAt(element2,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[11,12],[11,18]]]]],[],0,1,[\"loc\",[null,[11,6],[17,13]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[20,17],[20,23]]]]],[\"class\",\"js-tokenized\"],2,null,[\"loc\",[null,[20,4],[34,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 37,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/google-hangouts-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[36,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/hipchat-config-box/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    integrationsManager: Ember['default'].inject.service(),\n\n    company: Ember['default'].computed.alias('location.company.content'),\n    hipchatConnection: Ember['default'].computed.alias('company.hipchatConnection'),\n    connected: Ember['default'].computed.alias('hipchatConnection.connected'),\n    isOpen: Ember['default'].computed.equal('integration', 'hipchat'),\n    enabled: Ember['default'].computed('location.hipchatNotificationEnabled', {\n      get: function get() {\n        return this.get('location.hipchatNotificationEnabled');\n      },\n      set: function set(k, v) {\n        this.send('toggleLocation', v);\n\n        return v;\n      }\n    }),\n\n    close: function close() {\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'hipchat');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n\n    actions: {\n      toggleLocation: function toggleLocation(isEnable) {\n        if (isEnable) {\n          this.send('enable');\n        } else {\n          this.send('disable');\n        }\n      },\n      disable: function disable() {\n        this.set('location.hipchatNotificationEnabled', false);\n        var promise = this.get('location').save();\n\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      },\n      enable: function enable() {\n        this.set('location.hipchatNotificationEnabled', true);\n        var promise = this.get('location').save();\n\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      },\n      setupHipchat: function setupHipchat() {\n        this.get('integrationsManager').setupHipchat(this.get('hipchatConnection'));\n      },\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      },\n      disconnect: function disconnect(callback) {\n        var _this = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        var promise = this.get('integrationsManager').disconnectHipchat(this.get('location')).then(function () {\n          _this.sendAction('integrationDisconnected');\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/hipchat-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 9,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 11,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"p\");\n            dom.setAttribute(el1,\"class\",\"m0\");\n            var el2 = dom.createTextNode(\"Connected\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 15,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element5 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element5);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"close\"],[],[\"loc\",[null,[14,11],[14,29]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 15,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 19,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue mr1\");\n            var el2 = dom.createTextNode(\"\\n          Configure\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element4);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[16,48],[16,65]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child3 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 24,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 35,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"h4\");\n              var el2 = dom.createTextNode(\"Configurable Actions\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"py2 border-bottom\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"span\");\n              dom.setAttribute(el2,\"class\",\"flex flex-center\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"span\");\n              dom.setAttribute(el3,\"class\",\"flex-auto\");\n              var el4 = dom.createTextNode(\"Send employees a private HipChat message when their guest arrives\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"label\");\n              dom.setAttribute(el3,\"class\",\"toggle\");\n              var el4 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createComment(\"\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"span\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3, 1, 3]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-hipchat-notification\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"enabled\",[\"loc\",[null,[30,80],[30,87]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[30,97],[30,105]]]]],[],[]]],[\"loc\",[null,[30,16],[30,107]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 37,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 57,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"col col-6\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"p\");\n              var el3 = dom.createTextNode(\"To enable HipChat integration, you'll need to be an admin of your team's HipChat account. During setup, HipChat will ask you for \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"strong\");\n              var el4 = dom.createTextNode(\"Your Envoy API Key\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\", which you should copy from this page and paste into the HipChat setup form. Click \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"strong\");\n              var el4 = dom.createTextNode(\"Go to HipChat\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\" below to configure HipChat.\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"button\");\n              dom.setAttribute(el2,\"class\",\"btn btn--small btn--green block my2\");\n              var el3 = dom.createTextNode(\"Go to HipChat\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element1 = dom.childAt(fragment, [1]);\n              var element2 = dom.childAt(element1, [3]);\n              var morphs = new Array(3);\n              morphs[0] = dom.createElementMorph(element2);\n              morphs[1] = dom.createMorphAt(element1,5,5);\n              morphs[2] = dom.createMorphAt(element1,7,7);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"setupHipchat\"],[],[\"loc\",[null,[40,20],[40,45]]]],\n              [\"inline\",\"labeled-input\",[],[\"inputClass\",\"code location-apikey\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"location.apiKey\",[\"loc\",[null,[43,18],[43,33]]]]],[],[]],\"label\",\"Your Envoy API Key\",\"autocomplete\",\"off\",\"spellcheck\",\"false\",\"readonly\",true],[\"loc\",[null,[41,12],[48,14]]]],\n              [\"inline\",\"labeled-input\",[],[\"inputClass\",\"js-hipchat-server-domain\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"hipchatConnection.hipchatServerDomain\",[\"loc\",[null,[51,18],[51,55]]]]],[],[]],\"label\",\"HipChat Server Domain (leave blank if you're using HipChat Cloud)\",\"autocomplete\",\"off\",\"spellcheck\",\"false\"],[\"loc\",[null,[49,12],[55,14]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child2 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 57,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 72,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"flex flex-center py2\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"img\");\n              dom.setAttribute(el2,\"src\",\"assets/images/integrations/hipchat@2x.png\");\n              dom.setAttribute(el2,\"style\",\"width:40px;height:40px\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"div\");\n              dom.setAttribute(el2,\"class\",\"flex-auto px2\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"h4\");\n              var el4 = dom.createComment(\"\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"p\");\n              dom.setAttribute(el3,\"class\",\"m0\");\n              var el4 = dom.createTextNode(\"Connected to HipChat\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [1]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createMorphAt(dom.childAt(element0, [3, 1]),0,0);\n              morphs[1] = dom.createMorphAt(element0,5,5);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"company.name\",[\"loc\",[null,[61,18],[61,34]]]],\n              [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\",\"reset\",true],[\"loc\",[null,[64,12],[70,14]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 22,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 74,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element3 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(element3,1,1);\n            morphs[1] = dom.createMorphAt(element3,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"unless\",[[\"get\",\"hipchatConnection.isNew\",[\"loc\",[null,[24,18],[24,41]]]]],[],0,null,[\"loc\",[null,[24,8],[35,19]]]],\n            [\"block\",\"if\",[[\"get\",\"hipchatConnection.isNew\",[\"loc\",[null,[37,14],[37,37]]]]],[],1,2,[\"loc\",[null,[37,8],[72,15]]]]\n          ],\n          locals: [],\n          templates: [child0, child1, child2]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 76,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-hipchat-config\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/hipchat.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"HipChat\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element6 = dom.childAt(fragment, [1]);\n          var element7 = dom.childAt(element6, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element7, [3]),3,3);\n          morphs[1] = dom.createMorphAt(element7,5,5);\n          morphs[2] = dom.createMorphAt(element6,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"hipchatConnection.id\",[\"loc\",[null,[9,14],[9,34]]]]],[],0,null,[\"loc\",[null,[9,8],[11,15]]]],\n          [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[13,12],[13,18]]]]],[],1,2,[\"loc\",[null,[13,6],[19,13]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[22,17],[22,23]]]]],[\"class\",\"js-tokenized\"],3,null,[\"loc\",[null,[22,4],[74,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 77,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/hipchat-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[76,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/ifttt-config-box/component', ['exports', 'ember', 'garaje/helpers/array-to-sentence'], function (exports, Ember, array_to_sentence) {\n\n  'use strict';\n\n  var htmlSafe = Ember['default'].String.htmlSafe;\n\n  exports['default'] = Ember['default'].Component.extend({\n    integrationsManager: Ember['default'].inject.service(),\n\n    company: Ember['default'].computed.alias('location.company.content'),\n    iftttIntegration: Ember['default'].computed.alias('company.iftttIntegration.content'),\n    connected: Ember['default'].computed.notEmpty('iftttIntegration'),\n    isOpen: Ember['default'].computed.equal('integration', 'ifttt'),\n\n    close: function close() {\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'ifttt');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    connectedTo: Ember['default'].computed('iftttIntegration.granteeEmails', {\n      get: function get() {\n        var emails = this.get('iftttIntegration.granteeEmails').split(',').map(function (email) {\n          return '<b>' + email + '</b>';\n        });\n\n        return htmlSafe(array_to_sentence.arrayToSentence(emails));\n      }\n    }).readOnly(),\n\n    actions: {\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      },\n      disconnect: function disconnect(callback) {\n        var _this = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        } else {\n          var _ret = (function () {\n            var iftttIntegration = _this.get('iftttIntegration');\n            var promise = iftttIntegration.destroyRecord().then(function () {\n              iftttIntegration.unloadRecord();\n              _this.close();\n              _this.sendAction('integrationDisconnected');\n            });\n\n            return {\n              v: callback(promise)\n            };\n          })();\n\n          if (typeof _ret === 'object') return _ret.v;\n        }\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/ifttt-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 11,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 13,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/ifttt-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element2 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element2);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"close\"],[],[\"loc\",[null,[12,11],[12,29]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/ifttt-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue mr1\");\n            var el2 = dom.createTextNode(\"\\n          Configure\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element1);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[14,48],[14,65]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 20,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 41,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/ifttt-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h4\");\n            var el3 = dom.createTextNode(\"Triggers\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"Visitor signs in\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"span\");\n            dom.setAttribute(el3,\"class\",\"flex flex-center\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"span\");\n            dom.setAttribute(el4,\"class\",\"flex-auto\");\n            var el5 = dom.createTextNode(\"Visitor signs out\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"a\");\n            dom.setAttribute(el4,\"href\",\"https://ifttt.com/envoy\");\n            dom.setAttribute(el4,\"target\",\"_blank\");\n            dom.setAttribute(el4,\"class\",\"btn btn--small btn--blue\");\n            var el5 = dom.createTextNode(\"Configure Actions on IFTTT.com\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"Visitor is pre-registered\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"flex flex-center py2\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"img\");\n            dom.setAttribute(el3,\"src\",\"assets/images/integrations/ifttt@2x.png\");\n            dom.setAttribute(el3,\"style\",\"width:40px;height:40px\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"h4\");\n            var el5 = dom.createTextNode(\"Envoy\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            dom.setAttribute(el4,\"class\",\"m0\");\n            var el5 = dom.createTextNode(\"Connected to \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\".\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1, 9]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [3, 3]),1,1);\n            morphs[1] = dom.createMorphAt(element0,5,5);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"connectedTo\",[\"loc\",[null,[36,39],[36,54]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\"],[\"loc\",[null,[38,10],[38,147]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 43,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/ifttt-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-ifttt-config\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/ifttt.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"IFTTT\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Connected to \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element3 = dom.childAt(fragment, [1]);\n          var element4 = dom.childAt(element3, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element4, [3, 3]),1,1);\n          morphs[1] = dom.createMorphAt(element4,5,5);\n          morphs[2] = dom.createMorphAt(element3,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"connectedTo\",[\"loc\",[null,[9,35],[9,50]]]],\n          [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[11,12],[11,18]]]]],[],0,1,[\"loc\",[null,[11,6],[17,13]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[20,17],[20,23]]]]],[\"class\",\"js-tokenized\"],2,null,[\"loc\",[null,[20,4],[41,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 44,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/ifttt-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[43,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/index/route', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend({\n    titleToken: 'Integrations'\n  });\n\n});","define('garaje/settings/integrations/index/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 18,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 20,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"integration-disabledMessage\");\n            var el2 = dom.createTextNode(\"Disable \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"b\");\n            var el3 = dom.createTextNode(\"OneLogin\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\" to use this integration.\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 20,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 22,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              dom.setAttribute(el1,\"class\",\"integration-disabledMessage\");\n              var el2 = dom.createTextNode(\"Disable \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"b\");\n              var el3 = dom.createTextNode(\"Okta\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\" to use this integration.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 23,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 30,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"installGoogleApps\",\"class\",\"btn btn--small btn--green my2\",\"default\",\"Install\",\"pending\",\"Installing...\"],[\"loc\",[null,[24,14],[29,16]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 22,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 31,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"unless\",[[\"get\",\"box.installed\",[\"loc\",[null,[23,22],[23,35]]]]],[],0,null,[\"loc\",[null,[23,12],[30,23]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 20,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 31,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"currentLocation.company.oktaIntegration.content\",[\"loc\",[null,[20,20],[20,67]]]]],[],0,1,[\"loc\",[null,[20,10],[31,10]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 8,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 32,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/googleapps-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"Google Apps\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Sync your Google Apps with Envoy’s employee directory.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,7,7,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"currentLocation.company.oneLogin.content\",[\"loc\",[null,[18,16],[18,56]]]]],[],0,1,[\"loc\",[null,[18,10],[31,17]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1]\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 45,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 47,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"integration-disabledMessage\");\n            var el2 = dom.createTextNode(\"Disable \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"b\");\n            var el3 = dom.createTextNode(\"Google Apps\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\" to use this integration.\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 47,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 49,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              dom.setAttribute(el1,\"class\",\"integration-disabledMessage\");\n              var el2 = dom.createTextNode(\"Disable \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"b\");\n              var el3 = dom.createTextNode(\"Okta\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\" to use this integration.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 50,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 57,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"installOneLogin\",\"class\",\"btn btn--small btn--green my2\",\"default\",\"Install\",\"pending\",\"Installing...\"],[\"loc\",[null,[51,14],[56,16]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 49,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 58,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"unless\",[[\"get\",\"box.installed\",[\"loc\",[null,[50,22],[50,35]]]]],[],0,null,[\"loc\",[null,[50,12],[57,23]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 47,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 58,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"currentLocation.company.oktaIntegration.content\",[\"loc\",[null,[47,20],[47,67]]]]],[],0,1,[\"loc\",[null,[47,10],[58,10]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 35,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 59,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/onelogin-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"OneLogin\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Automatically sync your OneLogin directory with Employee Directory\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,7,7,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"currentLocation.company.googleApp.content\",[\"loc\",[null,[45,16],[45,57]]]]],[],0,1,[\"loc\",[null,[45,10],[58,17]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1]\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 71,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 73,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"integration-disabledMessage\");\n            var el2 = dom.createTextNode(\"Disable \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"b\");\n            var el3 = dom.createTextNode(\"Google Apps\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\" to use this integration.\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 73,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 75,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              dom.setAttribute(el1,\"class\",\"integration-disabledMessage\");\n              var el2 = dom.createTextNode(\"Disable \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"b\");\n              var el3 = dom.createTextNode(\"OneLogin\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\" to use this integration.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 76,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 83,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"installOkta\",\"class\",\"btn btn--small btn--green my2\",\"default\",\"Install\",\"pending\",\"Installing...\"],[\"loc\",[null,[77,14],[82,16]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 75,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 84,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"unless\",[[\"get\",\"box.installed\",[\"loc\",[null,[76,22],[76,35]]]]],[],0,null,[\"loc\",[null,[76,12],[83,23]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 73,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 84,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"currentLocation.company.oneLogin.content\",[\"loc\",[null,[73,22],[73,62]]]]],[],0,1,[\"loc\",[null,[73,12],[84,10]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 62,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 85,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/okta-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"Okta\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Automatically sync your Okta directory with Employee Directory\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,7,7,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"currentLocation.company.googleApp.content\",[\"loc\",[null,[71,16],[71,57]]]]],[],0,1,[\"loc\",[null,[71,10],[84,17]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1]\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 93,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 101,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/slack-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"Slack\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Send employees a private Slack message when their visitor arrives.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 104,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 112,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/hipchat-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"HipChat\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Send employees a private HipChat message when their visitor arrives.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 116,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 124,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"src\",\"assets/images/integrations/googlehangouts-logo.png\");\n            dom.setAttribute(el1,\"class\",\"my2\");\n            dom.setAttribute(el1,\"style\",\"max-height:40px\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"h4\");\n            var el2 = dom.createTextNode(\"Google Hangouts\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"p\");\n            var el2 = dom.createTextNode(\"Send employees an instant message when their visitor arrives.\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 114,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 126,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"col col-4 px2\");\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"enableGoogleHangouts\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.gtalkEnabled\",[\"loc\",[null,[118,22],[118,58]]]]],[],[]],\"class\",\"js-integrations-google-hangouts\"],0,null,[\"loc\",[null,[116,10],[124,48]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child6 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 133,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 142,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/salesforce-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"height:66px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"Salesforce\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Add new Envoy visitors as Salesforce\\n            leads. Requires Enterprise or Unlimited edition.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child7 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 150,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 158,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/saml-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"SAML\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Share access to Envoy without sharing your login credentials.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child8 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 166,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 174,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/webhooks-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"Webhooks\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Trigger custom workflows based on actions within Envoy.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child9 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 177,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 185,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/zapier-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"Zapier\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Trigger apps to perform custom actions based on actions within Envoy.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child10 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 188,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 196,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"src\",\"assets/images/integrations/ifttt-logo.png\");\n          dom.setAttribute(el1,\"class\",\"my2\");\n          dom.setAttribute(el1,\"style\",\"max-height:40px\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          var el2 = dom.createTextNode(\"IFTTT\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Create recipes based on actions within Envoy.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 208,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/index/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2 mt3\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        var el4 = dom.createTextNode(\"Employee Directory\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"clearfix flex mxn2\\n     js-employee-directory-integrations\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        dom.setAttribute(el3,\"class\",\"mt4\");\n        var el4 = dom.createTextNode(\"Host Notifications\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"clearfix flex mxn2 js-host-notification-integrations\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        dom.setAttribute(el3,\"class\",\"mt4\");\n        var el4 = dom.createTextNode(\"CRM\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"clearfix flex mxn2 js-crm-integrations\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        dom.setAttribute(el3,\"class\",\"mt4\");\n        var el4 = dom.createTextNode(\"Single Sign-On\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"clearfix flex mxn2 js-sso-integrations\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        dom.setAttribute(el3,\"class\",\"mt4\");\n        var el4 = dom.createTextNode(\"Roll Your Own\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"clearfix flex mxn2 js-custom-integrations\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"clearfix mxn2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"col col-4 px2\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"border rounded p2 center mt3 relative flex-column\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var element1 = dom.childAt(element0, [3]);\n        var element2 = dom.childAt(element0, [7]);\n        var element3 = dom.childAt(element0, [19]);\n        var morphs = new Array(12);\n        morphs[0] = dom.createMorphAt(dom.childAt(element1, [1]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element1, [3]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element1, [5]),1,1);\n        morphs[3] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n        morphs[4] = dom.createMorphAt(dom.childAt(element2, [3]),1,1);\n        morphs[5] = dom.createMorphAt(element2,5,5);\n        morphs[6] = dom.createMorphAt(dom.childAt(element0, [11, 1]),1,1);\n        morphs[7] = dom.createMorphAt(dom.childAt(element0, [15, 1]),1,1);\n        morphs[8] = dom.createMorphAt(dom.childAt(element3, [1]),1,1);\n        morphs[9] = dom.createMorphAt(dom.childAt(element3, [3]),1,1);\n        morphs[10] = dom.createMorphAt(dom.childAt(element3, [5]),1,1);\n        morphs[11] = dom.createMorphAt(dom.childAt(element0, [21, 1, 1]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installGoogleApps\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.googleApp.content\",[\"loc\",[null,[10,20],[10,61]]]]],[],[]],\"class\",\"js-integrations-google-apps\",\"showInstall\",false],0,null,[\"loc\",[null,[8,8],[32,46]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installOneLogin\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.oneLogin.content\",[\"loc\",[null,[37,20],[37,60]]]]],[],[]],\"class\",\"js-integrations-one-login\",\"showInstall\",false],1,null,[\"loc\",[null,[35,8],[59,46]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.oktaIntegration.content\",[\"loc\",[null,[63,20],[63,67]]]]],[],[]],\"class\",\"js-integrations-okta\",\"showInstall\",false],2,null,[\"loc\",[null,[62,8],[85,46]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installSlack\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.content.slackConnected\",[\"loc\",[null,[95,20],[95,66]]]]],[],[]],\"class\",\"js-integrations-slack\"],3,null,[\"loc\",[null,[93,8],[101,46]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installHipchat\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.hipchatConnection\",[\"loc\",[null,[106,20],[106,61]]]]],[],[]],\"class\",\"js-integrations-hipchat\"],4,null,[\"loc\",[null,[104,8],[112,46]]]],\n        [\"block\",\"if\",[[\"get\",\"subscription.canEnableGoogleHangouts\",[\"loc\",[null,[114,12],[114,48]]]]],[],5,null,[\"loc\",[null,[114,6],[126,13]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installSalesforce\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.salesforceIntegration.content\",[\"loc\",[null,[135,20],[135,73]]]]],[],[]],\"class\",\"js-integrations-salesforce\"],6,null,[\"loc\",[null,[133,8],[142,46]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installSaml\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.saml.content\",[\"loc\",[null,[152,20],[152,56]]]]],[],[]],\"class\",\"js-integrations-saml\"],7,null,[\"loc\",[null,[150,8],[158,46]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installWebhook\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.webhook.content\",[\"loc\",[null,[168,20],[168,51]]]]],[],[]],\"class\",\"js-integrations-webhook\"],8,null,[\"loc\",[null,[166,8],[174,46]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installZapier\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.zapierIntegration.content\",[\"loc\",[null,[179,20],[179,69]]]]],[],[]],\"class\",\"js-integrations-zapier\"],9,null,[\"loc\",[null,[177,8],[185,46]]]],\n        [\"block\",\"settings/integrations/install-box\",[],[\"install\",\"installIftt\",\"installed\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company.iftttIntegration.content\",[\"loc\",[null,[190,20],[190,68]]]]],[],[]],\"class\",\"js-integrations-ifttt\"],10,null,[\"loc\",[null,[188,8],[196,46]]]],\n        [\"content\",\"settings/integrations/integration-request\",[\"loc\",[null,[202,10],[202,55]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5, child6, child7, child8, child9, child10]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/install-box/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['border', 'rounded', 'p2', 'center', 'mt3', 'relative', 'flex', 'flex-column'],\n    installed: null, // specify as attr\n    showInstall: true,\n    actions: {\n      install: function install(callback) {\n        return this.sendAction('install', callback);\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/install-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 6,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/install-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"green block my1\");\n          var el2 = dom.createElement(\"b\");\n          var el3 = dom.createTextNode(\"Installed\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 6,\n                \"column\": 0\n              },\n              \"end\": {\n                \"line\": 15,\n                \"column\": 0\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/install-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n  \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"async-button\",[],[\"action\",\"install\",\"class\",\"btn btn--small btn--green\",\"default\",\"Install\",\"pending\",\"Installing...\"],[\"loc\",[null,[8,4],[13,6]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 6,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 15,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/install-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"showInstall\",[\"loc\",[null,[6,10],[6,21]]]]],[],0,null,[\"loc\",[null,[6,0],[15,0]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 16,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/install-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"span\");\n        dom.setAttribute(el1,\"class\",\"flex-auto\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),1,1);\n        morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"yield\",[[\"get\",\"this\",[\"loc\",[null,[2,10],[2,14]]]]],[],[\"loc\",[null,[2,2],[2,16]]]],\n        [\"block\",\"if\",[[\"get\",\"installed\",[\"loc\",[null,[4,6],[4,15]]]]],[],0,1,[\"loc\",[null,[4,0],[15,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/integration-request/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    classNames: ['tokenized', 'tokenized-integration'],\n    integrations: [{\n      name: 'Google Hangout / XMPP',\n      type: 'Notification'\n    }, {\n      name: 'Microsoft Lync',\n      type: 'Notification'\n    }, {\n      name: 'A phone call',\n      type: 'Notification'\n    }, {\n      name: 'Mailchimp',\n      type: 'CRM'\n    }, {\n      name: 'Eventbrite',\n      type: 'Event'\n    }, {\n      name: 'Meetup',\n      type: 'Event'\n    }, {\n      name: 'Okta',\n      type: 'Employee Directory'\n    }, {\n      name: 'Active Directory',\n      type: 'Employee Directory'\n    }, {\n      name: 'LDAP',\n      type: 'Employee Directory'\n    }, {\n      name: 'Workday',\n      type: 'Employee Directory'\n    }, {\n      name: 'OneLogin',\n      type: 'Employee Directory'\n    }, {\n      name: 'Google Calendar',\n      type: 'Pre-registration'\n    }, {\n      name: 'Office365',\n      type: 'Pre-registration'\n    }, {\n      name: 'Other',\n      type: 'Other'\n    }],\n    selected: '',\n    href: Ember['default'].computed('selected', {\n      get: function get() {\n        var subject = 'Integration Request';\n        var body = 'Tell us a bit about how you want to use Envoy';\n        var other = 'What integration do you want next? Tell us a bit about how you want to use it with Envoy.';\n\n        if (this.get('selected') && this.get('selected') !== 'Other') {\n          subject = subject + ': ' + this.get('selected');\n          body = body + ' with ' + this.get('selected') + '.';\n        } else {\n          body = other + '.';\n        }\n\n        return ('mailto:integrations@envoy.co?subject=' + subject + '&body=' + body).htmlSafe();\n      }\n    }).readOnly()\n  });\n\n});","define('garaje/settings/integrations/integration-request/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 13,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/integration-request/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"img\");\n        dom.setAttribute(el1,\"src\",\"assets/images/integrations/request-logo.png\");\n        dom.setAttribute(el1,\"class\",\"my2\");\n        dom.setAttribute(el1,\"style\",\"max-height:60px;max-width:60%\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"p\");\n        var el2 = dom.createTextNode(\"Who should Envoy integrate with?\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"a\");\n        dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue default\");\n        dom.setAttribute(el1,\"target\",\"_blank\");\n        var el2 = dom.createTextNode(\"Request\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [6]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(fragment,4,4,contextualElement);\n        morphs[1] = dom.createAttrMorph(element0, 'href');\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"x-select-blockless\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"integrations\",[\"loc\",[null,[4,8],[4,20]]]]],[],[]],\"optionValuePath\",\"content.name\",\"optionLabelPath\",\"content.name\",\"optionGroupPath\",\"type\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"selected\",[\"loc\",[null,[8,6],[8,14]]]]],[],[]],\"prompt\",\"Choose Integration\",\"class\",\"js-branding\"],[\"loc\",[null,[3,0],[11,2]]]],\n        [\"attribute\",\"href\",[\"get\",\"href\",[\"loc\",[null,[12,67],[12,71]]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/settings/integrations/okta-config-box/component', ['exports', 'ember', 'ember-validations'], function (exports, Ember, Validations) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Validations['default'], {\n    tagName: '',\n    connected: Ember['default'].computed.notEmpty('okta'),\n    isOpen: Ember['default'].computed.equal('integration', 'okta'),\n    enabled: Ember['default'].computed('okta.enabled', 'enabling', {\n      get: function get() {\n        return this.get('okta.enabled') && !this.get('enabling');\n      }\n    }).readOnly(),\n    isDirty: Ember['default'].computed('okta.isNew', 'okta.hashDirtyAttributes', {\n      get: function get() {\n        var changedAttributes = this.get('okta').changedAttributes();\n\n        return this.get('okta.isNew') || changedAttributes.token || changedAttributes.domain;\n      }\n    }).readOnly(),\n\n    validations: {\n      'okta.domain': {\n        presence: true,\n        oktaDomain: true\n      },\n      'okta.token': {\n        presence: true\n      }\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    confirmAction: function confirmAction() {\n      return window.confirm('You will lose any unsaved changes. Are you sure you want to continue?');\n    },\n    close: function close() {\n      if (this.get('okta.hasDirtyAttributes')) {\n        if (this.confirmAction()) {\n          if (this.get('okta.isNew')) {\n            this.get('okta').destroyRecord();\n          } else {\n            this.get('okta').rollbackAttributes();\n          }\n        } else {\n          return;\n        }\n      }\n      this.sendAction('closeAction');\n    },\n    actions: {\n      close: function close() {\n        this.close();\n      },\n      open: function open() {\n        this.sendAction('openAction', 'okta');\n      },\n      save: function save(callback) {\n        var _this = this;\n\n        this.set('validated', true);\n\n        var model = this.get('okta');\n\n        var promise = this.validate().then(function () {\n          _this.set('validated', false);\n          return _this.attrs.save(model);\n        });\n\n        callback(promise);\n      },\n      disconnect: function disconnect(callback) {\n        var _this2 = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        var promise = this.get('okta').destroyRecord().then(function () {\n          _this2.close();\n          _this2.sendAction('integrationDisconnected', true);\n        });\n        callback(promise);\n      },\n      disable: function disable() {\n        var _this3 = this;\n\n        this.set('okta.enabled', false);\n\n        var promise = this.get('okta').save().then(function () {\n          _this3.close();\n        });\n\n        this.sendAction('flashPromise', promise);\n      },\n      enable: function enable() {\n        var _this4 = this;\n\n        this.set('okta.enabled', true);\n        this.set('enabling', true);\n        var promise = this.get('okta').save()['finally'](function () {\n          _this4.set('enabling', false);\n        });\n\n        this.sendAction('flashPromise', promise);\n      },\n      toggleEnable: function toggleEnable(isEnable) {\n        if (isEnable) {\n          this.send('enable');\n        } else {\n          this.send('disable');\n        }\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/okta-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 12,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 20,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\",\"reset\",true],[\"loc\",[null,[13,12],[19,14]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 11,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 21,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"isDirty\",[\"loc\",[null,[12,16],[12,23]]]]],[],0,null,[\"loc\",[null,[12,10],[20,17]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 21,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 25,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n              var el2 = dom.createTextNode(\"\\n            Configure\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element3 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element3);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[22,46],[22,63]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 26,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[11,14],[11,20]]]]],[],0,1,[\"loc\",[null,[11,8],[25,15]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 36,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 36,\n                    \"column\": 112\n                  }\n                },\n                \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"Employee Directory ›\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 52,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 69,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"div\");\n                dom.setAttribute(el1,\"class\",\"py2 border-bottom\");\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"span\");\n                dom.setAttribute(el2,\"class\",\"flex flex-center\");\n                var el3 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createElement(\"span\");\n                dom.setAttribute(el3,\"class\",\"flex-auto\");\n                var el4 = dom.createTextNode(\"Disconnect and disable Okta sync\");\n                dom.appendChild(el3, el4);\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createElement(\"div\");\n                dom.setAttribute(el3,\"class\",\"u-right\");\n                var el4 = dom.createTextNode(\"\\n                  \");\n                dom.appendChild(el3, el4);\n                var el4 = dom.createElement(\"span\");\n                dom.setAttribute(el4,\"class\",\"right\");\n                var el5 = dom.createTextNode(\"\\n                    \");\n                dom.appendChild(el4, el5);\n                var el5 = dom.createComment(\"\");\n                dom.appendChild(el4, el5);\n                var el5 = dom.createTextNode(\"\\n                  \");\n                dom.appendChild(el4, el5);\n                dom.appendChild(el3, el4);\n                var el4 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el3, el4);\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1, 3, 1]),1,1);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\",\"reset\",true],[\"loc\",[null,[58,20],[64,22]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 31,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 70,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"h4\");\n              var el2 = dom.createTextNode(\"Configurable Actions\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"py2 border-bottom\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"span\");\n              dom.setAttribute(el2,\"class\",\"flex flex-center\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"span\");\n              dom.setAttribute(el3,\"class\",\"flex-auto\");\n              var el4 = dom.createTextNode(\"Sync your Okta directory\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"py2 border-bottom\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"span\");\n              dom.setAttribute(el2,\"class\",\"flex flex-center\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"span\");\n              dom.setAttribute(el3,\"class\",\"flex-auto\");\n              var el4 = dom.createTextNode(\"Automatically sync every hour on the hour\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"label\");\n              dom.setAttribute(el3,\"class\",\"toggle u-right\");\n              var el4 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createComment(\"\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"span\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(3);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3, 1]),3,3);\n              morphs[1] = dom.createMorphAt(dom.childAt(fragment, [5, 1, 3]),1,1);\n              morphs[2] = dom.createMorphAt(fragment,7,7,contextualElement);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"link-to\",[\"sync-settings\"],[\"class\",\"btn btn--small btn--blue flex-none\"],0,null,[\"loc\",[null,[36,14],[36,124]]]],\n              [\"inline\",\"checkbox-with-action\",[],[\"class\",\"js-integrations-okta-enable\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"enabled\",[\"loc\",[null,[45,24],[45,31]]]]],[],[]],\"action\",\"toggleEnable\"],[\"loc\",[null,[43,16],[47,18]]]],\n              [\"block\",\"if\",[[\"get\",\"okta.id\",[\"loc\",[null,[52,16],[52,23]]]]],[],1,null,[\"loc\",[null,[52,10],[69,17]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 73,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 78,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"col col-6\");\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"p\");\n              var el3 = dom.createTextNode(\"To enable Okta integration, you'll need to be an admin of your team's Okta account. Click \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"strong\");\n              var el4 = dom.createTextNode(\"Go to Okta\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\", log into your Okta account and go to \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"strong\");\n              var el4 = dom.createTextNode(\"Admin » Security »\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\" and click \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"strong\");\n              var el4 = dom.createTextNode(\"Create Token\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\". Paste that token below.\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"a\");\n              dom.setAttribute(el2,\"href\",\"https://www.okta.com\");\n              dom.setAttribute(el2,\"target\",\"_blank\");\n              dom.setAttribute(el2,\"class\",\"btn btn--small btn--green block my2\");\n              var el3 = dom.createTextNode(\"Go to Okta\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 29,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 99,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"clearfix pt2\");\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"col col-6\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var element1 = dom.childAt(element0, [3]);\n            var element2 = dom.childAt(element1, [3]);\n            var morphs = new Array(4);\n            morphs[0] = dom.createMorphAt(element0,1,1);\n            morphs[1] = dom.createMorphAt(element1,1,1);\n            morphs[2] = dom.createMorphAt(element2,1,1);\n            morphs[3] = dom.createMorphAt(element2,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"okta.id\",[\"loc\",[null,[31,14],[31,21]]]]],[],0,null,[\"loc\",[null,[31,8],[70,15]]]],\n            [\"block\",\"liquid-unless\",[[\"get\",\"okta.token\",[\"loc\",[null,[73,27],[73,37]]]]],[],1,null,[\"loc\",[null,[73,10],[78,28]]]],\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"okta.token\",[\"loc\",[null,[82,18],[82,28]]]]],[],[]],\"inputClass\",\"code integrations-oktatoken\",\"label\",\"Token\",\"autofocus\",\"true\",\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[86,22],[86,31]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.okta.token\",[\"loc\",[null,[87,22],[87,39]]]]],[],[]]],[\"loc\",[null,[81,12],[88,14]]]],\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"okta.domain\",[\"loc\",[null,[90,18],[90,29]]]]],[],[]],\"inputClass\",\"integrations-oktadomain\",\"label\",\"Domain\",\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[93,22],[93,31]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.okta.domain\",[\"loc\",[null,[94,22],[94,40]]]]],[],[]]],[\"loc\",[null,[89,12],[95,14]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 101,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-okta-config\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/okta.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Okta\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element4, [1]),5,5);\n          morphs[1] = dom.createMorphAt(element4,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[10,33],[10,37]]]]],[],[]]],0,null,[\"loc\",[null,[10,6],[26,27]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[29,17],[29,23]]]]],[\"class\",\"js-tokenized\"],1,null,[\"loc\",[null,[29,4],[99,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 102,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/okta-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[101,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/one-login-config-box/component', ['exports', 'ember', 'ember-validations', 'moment'], function (exports, Ember, Validations, moment) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Validations['default'], {\n    tagName: '', // don't wrap content in html tag,\n    oneLogin: null, // attrs\n\n    validations: {\n      'oneLogin.apiKey': {\n        presence: true\n      }\n    },\n\n    validated: false,\n\n    apiKeyBlank: Ember['default'].computed.empty('oneLogin.apiKey'),\n    isOneLoginEditable: Ember['default'].computed.or('oneLogin.enabled', 'oneLogin.apiKeyBlank'),\n    // Check if the record exist, we don't care about the state or if is new.\n    connected: Ember['default'].computed.notEmpty('oneLogin'),\n    enabled: Ember['default'].computed('oneLogin.enabled', 'enabling', {\n      get: function get() {\n        return this.get('oneLogin.enabled') && !this.get('enabling');\n      }\n    }).readOnly(),\n    isOpen: Ember['default'].computed.equal('integration', 'one-login'),\n    hasDirtyAttributes: Ember['default'].computed('oneLogin.{hasDirtyAttributes,isNew}', 'apiKeyBlank', {\n      get: function get() {\n        var hasDirtyAttributes = undefined;\n\n        if (this.get('oneLogin.isNew') && this.get('apiKeyBlank')) {\n          hasDirtyAttributes = false;\n        } else {\n          hasDirtyAttributes = this.get('oneLogin.hasDirtyAttributes') && !this.get('enabling');\n        }\n\n        return hasDirtyAttributes;\n      }\n    }).readOnly(),\n    createdAt: Ember['default'].computed('oneLogin.createdAt', {\n      get: function get() {\n        return moment['default'](this.get('oneLogin.createdAt')).format('MMMM D, YYYY');\n      }\n    }).readOnly(),\n\n    confirmAction: function confirmAction() {\n      return window.confirm(\"You will lose any unsaved changes. Are you sure you want to continue?\");\n    },\n    destroyRecord: function destroyRecord() {\n      return this.get('oneLogin').destroyRecord();\n    },\n    close: function close() {\n      var _this = this;\n\n      if (this.get('oneLogin') && this.get('hasDirtyAttributes') && this.confirmAction()) {\n        this.get('oneLogin').rollbackAttributes();\n      } else if (this.get('hasDirtyAttributes')) {\n        return;\n      }\n      if (this.get('oneLogin.isNew')) {\n        if (this.confirmAction()) {\n          this.destroyRecord().then(function () {\n            _this.sendAction('integrationDisconnected');\n          });\n        } else {\n          return;\n        }\n      }\n\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'one-login');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    actions: {\n      disconnect: function disconnect(callback) {\n        var _this2 = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        var promise = this.destroyRecord().then(function () {\n          _this2.close();\n          _this2.sendAction('integrationDisconnected', true);\n        });\n        callback(promise);\n\n        this.sendAction('flashPromise', promise);\n      },\n      save: function save(callback) {\n        var _this3 = this;\n\n        this.set('validated', true);\n\n        var model = this.get('oneLogin');\n\n        var promise = this.validate().then(function () {\n          _this3.set('validated', false);\n          return _this3.attrs.save(model);\n        });\n\n        callback(promise);\n      },\n      disable: function disable() {\n        var _this4 = this;\n\n        this.set('oneLogin.enabled', false);\n\n        var promise = this.get('oneLogin').save().then(function () {\n          _this4.close();\n        });\n\n        this.sendAction('flashPromise', promise);\n      },\n      enable: function enable() {\n        var _this5 = this;\n\n        this.set('oneLogin.enabled', true);\n        this.set('enabling', true);\n        var promise = this.get('oneLogin').save()['finally'](function () {\n          _this5.set('enabling', false);\n        });\n\n        this.sendAction('flashPromise', promise);\n      },\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      },\n      toggleEnable: function toggleEnable(isEnable) {\n        if (isEnable) {\n          this.send('enable');\n        } else {\n          this.send('disable');\n        }\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/one-login-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 12,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            Syncing employees from \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"b\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" every hour on the hour\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"domain\",[\"loc\",[null,[11,38],[11,48]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 12,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 14,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            Syncing employees from \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"b\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" manually\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"domain\",[\"loc\",[null,[13,38],[13,48]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 19,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 27,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\",\"reset\",true],[\"loc\",[null,[20,12],[26,14]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 18,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 28,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"oneLogin.hasDirtyAttributes\",[\"loc\",[null,[19,16],[19,43]]]]],[],0,null,[\"loc\",[null,[19,10],[27,17]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 28,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 32,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n              var el2 = dom.createTextNode(\"\\n            Configure\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element2 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element2);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[29,46],[29,63]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 33,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[18,14],[18,20]]]]],[],0,1,[\"loc\",[null,[18,8],[32,15]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child3 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 57,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 57,\n                    \"column\": 112\n                  }\n                },\n                \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"Employee Directory ›\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 52,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 88,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"h4\");\n              var el2 = dom.createTextNode(\"Configurable Actions\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"py2 border-bottom\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"span\");\n              dom.setAttribute(el2,\"class\",\"flex flex-center\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"span\");\n              dom.setAttribute(el3,\"class\",\"flex-auto\");\n              var el4 = dom.createTextNode(\"Sync your OneLogin users with Employee Directory\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"py2 border-bottom\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"span\");\n              dom.setAttribute(el2,\"class\",\"flex flex-center\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"span\");\n              dom.setAttribute(el3,\"class\",\"flex-auto\");\n              var el4 = dom.createTextNode(\"Automatically sync every hour on the hour\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"label\");\n              dom.setAttribute(el3,\"class\",\"toggle u-right\");\n              var el4 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createComment(\"\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"span\");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"flex flex-center py2\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"img\");\n              dom.setAttribute(el2,\"src\",\"assets/images/integrations/onelogin@2x.png\");\n              dom.setAttribute(el2,\"style\",\"width:40px;height:40px\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"div\");\n              dom.setAttribute(el2,\"class\",\"flex-auto px2\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"h4\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"p\");\n              var el4 = dom.createTextNode(\"Connected on \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createComment(\"\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [7]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3, 1]),3,3);\n              morphs[1] = dom.createMorphAt(dom.childAt(fragment, [5, 1, 3]),1,1);\n              morphs[2] = dom.createMorphAt(dom.childAt(element0, [3, 3]),1,1);\n              morphs[3] = dom.createMorphAt(element0,5,5);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"link-to\",[\"sync-settings\"],[\"class\",\"btn btn--small btn--blue flex-none\"],0,null,[\"loc\",[null,[57,14],[57,124]]]],\n              [\"inline\",\"checkbox-with-action\",[],[\"class\",\"js-integrations-one-login-enable\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"enabled\",[\"loc\",[null,[66,24],[66,31]]]]],[],[]],\"action\",\"toggleEnable\"],[\"loc\",[null,[64,16],[68,18]]]],\n              [\"content\",\"createdAt\",[\"loc\",[null,[78,30],[78,43]]]],\n              [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\",\"reset\",true],[\"loc\",[null,[80,12],[86,14]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 36,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 90,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"clearfix\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"col col-6\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            var el5 = dom.createTextNode(\"To sync your employees we need the API key for your OneLogin account. It can be obtained from the \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"a\");\n            dom.setAttribute(el5,\"href\",\"https://admin.us.onelogin.com/session_settings\");\n            dom.setAttribute(el5,\"target\",\"_blank\");\n            var el6 = dom.createTextNode(\"session settings page\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\". If you are whitelisting by IP address, ours is \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"code\");\n            var el6 = dom.createTextNode(\"54.197.242.176\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\".\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element1, [1, 1]),3,3);\n            morphs[1] = dom.createMorphAt(element1,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"oneLogin.apiKey\",[\"loc\",[null,[42,18],[42,33]]]]],[],[]],\"inputClass\",\"integrations-one-login-api-key\",\"label\",\"API Key\",\"autofocus\",\"true\",\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[46,22],[46,31]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.oneLogin.apiKey\",[\"loc\",[null,[47,22],[47,44]]]]],[],[]]],[\"loc\",[null,[41,12],[48,14]]]],\n            [\"block\",\"if\",[[\"get\",\"oneLogin.id\",[\"loc\",[null,[52,14],[52,25]]]]],[],0,null,[\"loc\",[null,[52,8],[88,15]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 92,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-one-login\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/onelogin.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2 js-integration\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"OneLogin\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"        \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element3 = dom.childAt(fragment, [1]);\n          var element4 = dom.childAt(element3, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element4, [3, 3]),1,1);\n          morphs[1] = dom.createMorphAt(element4,5,5);\n          morphs[2] = dom.createMorphAt(element3,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"enabled\",[\"loc\",[null,[10,16],[10,23]]]]],[],0,1,[\"loc\",[null,[10,10],[14,17]]]],\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[17,33],[17,37]]]]],[],[]]],2,null,[\"loc\",[null,[17,6],[33,27]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[36,17],[36,23]]]]],[\"class\",\"js-tokenized\"],3,null,[\"loc\",[null,[36,4],[90,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 93,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/one-login-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[92,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/route', ['exports', 'ember', 'garaje/utils/flash', 'garaje/utils/flash-promise', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update'], function (exports, Ember, flashMessage, _flashPromise, ResetScroll, IntercomUpdate) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    integrationsManager: Ember['default'].inject.service(),\n    model: function model() {\n      return this.get('integrationsManager').loadIntegration(this.get('currentLocation.company'));\n    },\n    scrollToIntegration: function scrollToIntegration(selector) {\n      Ember['default'].run.later(function () {\n        Ember['default'].$.scrollTo(selector, 200, { over: -0.5 });\n      }, 200);\n    },\n    actions: {\n      installGoogleApps: function installGoogleApps(callback) {\n        var _this = this;\n\n        var company = this.get('currentLocation.company');\n        var integrationManager = this.get('integrationsManager');\n        var promise = integrationManager.connectGoogleApps(company).then(function () {\n          company.get('content').reload();\n          _this.transitionTo('sync-settings');\n        })['catch'](function (response) {\n          var error = undefined;\n          switch (response.status) {\n            case integrationManager.GOOGLE_APPS_ERRORS.insufficientAccess:\n              error = response.errors[0].messages.join('. ');\n\n              flashMessage['default'].call(_this, 'error', 'Error: ' + error);\n              break;\n            case integrationManager.GOOGLE_APPS_ERRORS.otherProviderEnabled:\n              error = response.errors[0].messages.join('. ');\n\n              flashMessage['default'].call(_this, 'error', 'Error: ' + error);\n              break;\n            default:\n              flashMessage['default'].call(_this, 'error', 'Error: sorry, we couldn\\'t connect your account.');\n              break;\n          }\n        });\n\n        callback(promise);\n      },\n      installWebhook: function installWebhook() {\n        var _this2 = this;\n\n        this.store.createRecord('webhook', {\n          location: this.get('currentLocation.content')\n        });\n        this.transitionTo('settings.integrations.enabled', {\n          queryParams: {\n            integration: 'webhook'\n          }\n        }).then(function () {\n          _this2.scrollToIntegration('.js-integrations-webhook');\n        });\n      },\n      installSaml: function installSaml() {\n        var _this3 = this;\n\n        this.store.createRecord('saml', {\n          company: this.get('currentLocation.company')\n        });\n        this.transitionTo('settings.integrations.enabled', {\n          queryParams: {\n            integration: 'saml'\n          }\n        }).then(function () {\n          _this3.scrollToIntegration('.js-integrations-saml');\n        });\n      },\n      installOneLogin: function installOneLogin() {\n        var _this4 = this;\n\n        this.store.createRecord('one-login', {\n          company: this.get('currentLocation.company')\n        });\n        this.transitionTo('settings.integrations.enabled', {\n          queryParams: {\n            integration: 'one-login'\n          }\n        }).then(function () {\n          _this4.scrollToIntegration('.js-integrations-one-login');\n        });\n      },\n      installSlack: function installSlack(callback) {\n        var _this5 = this;\n\n        var promise = this.get('integrationsManager').connectSlack(this.get('currentLocation')).then(function () {\n          _this5.transitionTo('settings.integrations.enabled', {\n            queryParams: {\n              integration: 'slack'\n            }\n          }).then(function () {\n            _this5.scrollToIntegration('.js-integrations-slack-config');\n          });\n        });\n\n        callback(promise);\n      },\n      installHipchat: function installHipchat() {\n        var _this6 = this;\n\n        this.get('integrationsManager').connectHipchat(this.get('currentLocation')).then(function () {\n          _this6.transitionTo('settings.integrations.enabled', {\n            queryParams: {\n              integration: 'hipchat'\n            }\n          }).then(function () {\n            _this6.scrollToIntegration('.js-integrations-hipchat-config');\n          });\n        });\n      },\n      installSalesforce: function installSalesforce(callback) {\n        var _this7 = this;\n\n        var company = this.get('currentLocation.company');\n        var promise = this.get('integrationsManager').connectSalesforce(company).then(function () {\n          _this7.transitionTo('settings.integrations.enabled', {\n            queryParams: {\n              integration: 'salesforce'\n            }\n          }).then(function () {\n            _this7.scrollToIntegration('.js-integrations-salesforce-config');\n          });\n        })['catch'](function () {\n          flashMessage['default'].call(_this7, 'error', 'Failed to install Salesforce integration');\n        });\n        callback(promise);\n      },\n      installZapier: function installZapier(callback) {\n        var _this8 = this;\n\n        var company = this.get('currentLocation.company.content');\n        var integrationManager = this.get('integrationsManager');\n        var promise = integrationManager.connectZapier(company)['catch'](function () {\n          var promise = undefined;\n\n          // Don't reload zapier if is already in memory.\n          if (company.get('zapierIntegration.content')) {\n            promise = Ember['default'].RSVP.resolve({});\n          } else {\n            promise = integrationManager.loadZapier();\n          }\n\n          return promise.then(function () {\n            _this8.transitionTo('settings.integrations.enabled', {\n              queryParams: {\n                integration: 'zapier'\n              }\n            });\n          });\n        });\n\n        callback(promise);\n      },\n      installIftt: function installIftt(callback) {\n        var _this9 = this;\n\n        var company = this.get('currentLocation.company.content');\n        var integrationManager = this.get('integrationsManager');\n        var promise = integrationManager.connectIfttt(company)['catch'](function () {\n          var promise = undefined;\n\n          if (company.get('iftttIntegration.content')) {\n            promise = Ember['default'].RSVP.resolve({});\n          } else {\n            promise = integrationManager.loadIfttt();\n          }\n\n          return promise.then(function () {\n            _this9.transitionTo('settings.integrations.enabled', {\n              queryParams: {\n                integration: 'ifttt'\n              }\n            });\n          });\n        });\n\n        callback(promise);\n      },\n      installOkta: function installOkta() {\n        var _this10 = this;\n\n        this.store.createRecord('okta-integration', {\n          company: this.get('currentLocation.company')\n        });\n        this.transitionTo('settings.integrations.enabled', {\n          queryParams: {\n            integration: 'okta'\n          }\n        }).then(function () {\n          _this10.scrollToIntegration('.js-integrations-okta-config');\n        });\n      },\n      enableGoogleHangouts: function enableGoogleHangouts() {\n        var _this11 = this;\n\n        var company = this.get('currentLocation.company.content');\n        company.set('gtalkEnabled', true);\n\n        company.save().then(function () {\n          _this11.transitionTo('settings.integrations.enabled', {\n            queryParams: {\n              integration: 'google-hangouts'\n            }\n          }).then(function () {\n            _this11.scrollToIntegration('.js-integrations-google-hangouts-config');\n          });\n        });\n      },\n      flashPromise: function flashPromise(promise, message) {\n        _flashPromise['default'](promise, this, message);\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/salesforce-config-box/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: '', // don't wrap content in html tag\n    integrationsManager: Ember['default'].inject.service(),\n\n    company: Ember['default'].computed.alias('location.company.content'),\n    connected: Ember['default'].computed.alias('location.company.salesforceIntegration.content'),\n    salesforceUserId: Ember['default'].computed.alias('location.company.salesforceIntegration.content.salesforceUserId'),\n    isOpen: Ember['default'].computed.equal('integration', 'salesforce'),\n    confirmAction: function confirmAction() {\n      return window.confirm(\"You will lose any unsaved changes. Are you sure you want to continue?\");\n    },\n    destroyRecord: function destroyRecord() {},\n    close: function close() {\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'salesforce');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    actions: {\n      disconnect: function disconnect(callback) {\n        var _this = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        var promise = this.get('integrationsManager').disconnectSalesforce(this.get('company')).then(function () {\n          _this.sendAction('integrationDisconnected');\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      },\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/salesforce-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 19,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/salesforce-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-salesforce-config\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/salesforce.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Salesforce\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Connected to \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"b\");\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1, 1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element0, [3, 3, 1]),0,0);\n          morphs[1] = dom.createMorphAt(element0,5,5);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"salesforceUserId\",[\"loc\",[null,[9,38],[9,58]]]],\n          [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\"],[\"loc\",[null,[11,6],[16,8]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 20,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/salesforce-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[19,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/saml-config-box/component', ['exports', 'ember', 'ember-validations', 'garaje/utils/url-builder'], function (exports, Ember, Validations, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Validations['default'], {\n    tagName: '', // don't wrap content in html tag,\n    saml: null, // attrs\n\n    validations: {\n      'saml.fingerprint': {\n        presence: true\n      }\n    },\n\n    validated: false,\n    connected: Ember['default'].computed.notEmpty('saml'),\n    hasFingerprint: Ember['default'].computed.notEmpty('saml.fingerprint'),\n    hasUrl: Ember['default'].computed.notEmpty('saml.url'),\n    hasRequiredFields: Ember['default'].computed.alias('hasFingerprint'),\n    hasAllFields: Ember['default'].computed.and('hasFingerprint', 'hasUrl'),\n    isDirty: Ember['default'].computed('saml.{isNew,isDirty}', 'hasRequiredFields', {\n      get: function get() {\n        if (this.get('saml.isNew') && !this.get('hasAllFields')) {\n          return false;\n        } else {\n          return this.get('saml.hasDirtyAttributes');\n        }\n      }\n    }),\n    enabled: Ember['default'].computed('saml.enabled', 'enabling', {\n      get: function get() {\n        return this.get('saml.enabled') && !this.get('enabling');\n      }\n    }).readOnly(),\n    isOpen: Ember['default'].computed.equal('integration', 'saml'),\n\n    samlConsumeUrl: Ember['default'].computed(function () {\n      return urlBuilder['default'].samlConsumeUrl();\n    }),\n\n    samlInitUrl: Ember['default'].computed('saml.company.content.id', {\n      get: function get() {\n        return urlBuilder['default'].samlInitUrl(this.get('saml.company.content.id'));\n      }\n    }),\n\n    confirmAction: function confirmAction() {\n      return window.confirm(\"You will lose any unsaved changes. Are you sure you want to continue?\");\n    },\n    destroyRecord: function destroyRecord() {\n      return this.get('saml').destroyRecord();\n    },\n    close: function close() {\n      var _this = this;\n\n      if (this.get('saml') && this.get('isDirty') && this.confirmAction()) {\n        this.get('saml').rollbackAttributes();\n      } else if (this.get('isDirty')) {\n        return;\n      }\n\n      if (this.get('saml.isNew')) {\n        if (this.confirmAction()) {\n          this.destroyRecord().then(function () {\n            _this.sendAction('integrationDisconnected');\n          });\n        } else {\n          return;\n        }\n      }\n\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'saml');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    actions: {\n      disconnect: function disconnect(callback) {\n        var _this2 = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        var promise = this.destroyRecord().then(function () {\n          _this2.close();\n        });\n\n        callback(promise);\n        this.sendAction('flashPromise', promise);\n      },\n      save: function save(callback) {\n        var _this3 = this;\n\n        this.set('validated', true);\n\n        var model = this.get('saml');\n        var promise = this.validate().then(function () {\n          var savePromise = model.save().then(function () {\n            _this3.set('validated', false);\n            return _this3.close();\n          });\n\n          _this3.sendAction('flashPromise', savePromise);\n          return savePromise;\n        });\n\n        callback(promise);\n      },\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      },\n      showFlash: function showFlash(type, message) {\n        this.sendAction('showFlash', type, message);\n      },\n      hideFlash: function hideFlash() {\n        this.sendAction('hideFlash');\n      },\n      redirectToEnvoy: function redirectToEnvoy(path) {\n        this.send('redirectToEnvoy', path);\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/saml-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 12,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/saml-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"code\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"saml.fingerprint\",[\"loc\",[null,[11,18],[11,38]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 12,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 14,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/saml-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            Access Envoy via Single Sign-On.\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 26,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/saml-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element3 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createElementMorph(element3);\n            morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"close\"],[],[\"loc\",[null,[18,11],[18,29]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\",\"reset\",true],[\"loc\",[null,[19,8],[25,10]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 26,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 30,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/saml-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue mr1\");\n            var el2 = dom.createTextNode(\"\\n          Configure\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element2 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element2);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[27,48],[27,65]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child4 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 53,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 63,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/saml-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"right\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\",\"reset\",true],[\"loc\",[null,[55,12],[61,14]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 33,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 65,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/saml-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"clearfix\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"col col-6\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            var el5 = dom.createTextNode(\"SAML Consumer URL: \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"code\");\n            var el6 = dom.createComment(\"\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            var el5 = dom.createTextNode(\"SAML SSO Redirect URL: \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"code\");\n            var el6 = dom.createComment(\"\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            var el5 = dom.createTextNode(\"To allow access to Envoy via a Single Sign-On SAML solution (like Okta or OneLogin), please enter the SHA-1 Fingerprint of the account's Certificate and the SAML HTTP POST URL in the textboxes above. These are both obtained from your SAML Identity Provider.\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var element1 = dom.childAt(element0, [1, 1]);\n            var morphs = new Array(5);\n            morphs[0] = dom.createMorphAt(element1,1,1);\n            morphs[1] = dom.createMorphAt(element1,3,3);\n            morphs[2] = dom.createMorphAt(dom.childAt(element1, [5, 1]),0,0);\n            morphs[3] = dom.createMorphAt(dom.childAt(element1, [7, 1]),0,0);\n            morphs[4] = dom.createMorphAt(element0,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"saml.fingerprint\",[\"loc\",[null,[38,18],[38,34]]]]],[],[]],\"inputClass\",\"integrations-samlfingerprint\",\"label\",\"Fingerprint\",\"autofocus\",\"true\",\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[42,22],[42,31]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.saml.fingerprint\",[\"loc\",[null,[43,22],[43,45]]]]],[],[]]],[\"loc\",[null,[37,12],[44,14]]]],\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"saml.url\",[\"loc\",[null,[45,34],[45,42]]]]],[],[]],\"inputClass\",\"integrations-samlurl\",\"label\",\"Identity Provider HTTP SAML URL (optional)\"],[\"loc\",[null,[45,12],[45,129]]]],\n            [\"content\",\"samlConsumeUrl\",[\"loc\",[null,[47,40],[47,58]]]],\n            [\"content\",\"samlInitUrl\",[\"loc\",[null,[48,44],[48,59]]]],\n            [\"block\",\"if\",[[\"get\",\"saml.id\",[\"loc\",[null,[53,14],[53,21]]]]],[],0,null,[\"loc\",[null,[53,8],[63,15]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 67,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/saml-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-saml\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;max-height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"span\");\n          dom.setAttribute(el4,\"class\",\"red bold\");\n          var el5 = dom.createTextNode(\"SAML\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"SAML\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0 js-byline\");\n          var el5 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"        \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var element5 = dom.childAt(element4, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element5, [3, 3]),1,1);\n          morphs[1] = dom.createMorphAt(element5,5,5);\n          morphs[2] = dom.createMorphAt(element4,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"hasFingerprint\",[\"loc\",[null,[10,16],[10,30]]]]],[],0,1,[\"loc\",[null,[10,10],[14,17]]]],\n          [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[17,12],[17,18]]]]],[],2,3,[\"loc\",[null,[17,6],[30,13]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[33,17],[33,23]]]]],[\"class\",\"js-tokenized\"],4,null,[\"loc\",[null,[33,4],[65,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3, child4]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 68,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/saml-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[67,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/slack-config-box/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: '', // don't wrap content in html tag\n    integrationsManager: Ember['default'].inject.service(),\n\n    company: Ember['default'].computed.alias('location.company.content'),\n    connected: Ember['default'].computed.alias('company.slackConnected'),\n    enabled: Ember['default'].computed('location.slackNotificationEnabled', 'enabling', {\n      get: function get() {\n        return this.get('location.slackNotificationEnabled') && !this.get('enabling');\n      }\n    }).readOnly(),\n    isOpen: Ember['default'].computed.equal('integration', 'slack'),\n    confirmAction: function confirmAction() {\n      return window.confirm(\"You will lose any unsaved changes. Are you sure you want to continue?\");\n    },\n    destroyRecord: function destroyRecord() {},\n    close: function close() {\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'slack');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    actions: {\n      disconnect: function disconnect(callback) {\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        var promise = this.get('integrationsManager').disconnectSlack(this.get('location'));\n        this.sendAction('integrationDisconnected');\n\n        if (callback) {\n          callback(promise);\n        }\n\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      },\n      disable: function disable(callback) {\n        this.set('location.slackNotificationEnabled', false);\n\n        var promise = this.get('location').save();\n\n        if (callback) {\n          callback(promise);\n        }\n\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      },\n      enable: function enable(callback) {\n        var _this = this;\n\n        this.set('location.slackNotificationEnabled', true);\n        this.set('enabling', true);\n        var promise = this.get('location').save()['finally'](function () {\n          _this.set('enabling', false);\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n\n        this.sendAction('flashPromise', promise);\n\n        return promise;\n      },\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      },\n      toggleLocation: function toggleLocation(isEnable) {\n        if (isEnable) {\n          this.send('enable');\n        } else {\n          this.send('disable');\n        }\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/slack-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 11,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 13,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/slack-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element4);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"close\"],[],[\"loc\",[null,[12,11],[12,29]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/slack-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue mr1\");\n            var el2 = dom.createTextNode(\"\\n          Configure\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element3 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element3);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[14,48],[14,65]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 20,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 48,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/slack-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h4\");\n            var el3 = dom.createTextNode(\"Configurable Actions\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"span\");\n            dom.setAttribute(el3,\"class\",\"flex flex-center\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"span\");\n            dom.setAttribute(el4,\"class\",\"flex-auto\");\n            var el5 = dom.createTextNode(\"Send employees a private Slack message when their guest arrives\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"label\");\n            dom.setAttribute(el4,\"class\",\"toggle\");\n            var el5 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"span\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"flex flex-center py2\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"img\");\n            dom.setAttribute(el3,\"src\",\"assets/images/integrations/slack@2x.png\");\n            dom.setAttribute(el3,\"style\",\"width:40px;height:40px;\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"h4\");\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            dom.setAttribute(el4,\"class\",\"m0\");\n            var el5 = dom.createTextNode(\"Connected to the \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"b\");\n            var el6 = dom.createComment(\"\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\" team.\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var element1 = dom.childAt(element0, [5]);\n            var element2 = dom.childAt(element1, [3]);\n            var morphs = new Array(4);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [3, 1, 3]),1,1);\n            morphs[1] = dom.createMorphAt(dom.childAt(element2, [1]),0,0);\n            morphs[2] = dom.createMorphAt(dom.childAt(element2, [3, 1]),0,0);\n            morphs[3] = dom.createMorphAt(element1,5,5);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"checkbox-with-action\",[],[\"class\",\"js-slack-notification\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"location.slackNotificationEnabled\",[\"loc\",[null,[27,75],[27,108]]]]],[],[]],\"action\",\"toggleLocation\"],[\"loc\",[null,[27,14],[27,135]]]],\n            [\"content\",\"company.slackTeamName\",[\"loc\",[null,[36,16],[36,41]]]],\n            [\"content\",\"company.slackTeamName\",[\"loc\",[null,[37,46],[37,71]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\",\"reset\",true],[\"loc\",[null,[39,10],[45,12]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 50,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/slack-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-slack-config\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/slack.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Slack\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Connected to \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"b\");\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element5 = dom.childAt(fragment, [1]);\n          var element6 = dom.childAt(element5, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element6, [3, 3, 1]),0,0);\n          morphs[1] = dom.createMorphAt(element6,5,5);\n          morphs[2] = dom.createMorphAt(element5,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"company.slackTeamName\",[\"loc\",[null,[9,38],[9,63]]]],\n          [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[11,12],[11,18]]]]],[],0,1,[\"loc\",[null,[11,6],[17,13]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[20,17],[20,23]]]]],[\"class\",\"js-tokenized\"],2,null,[\"loc\",[null,[20,4],[48,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 51,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/slack-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[50,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 6,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 8,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Enabled Integrations\",\"settings.integrations.enabled\"],[],[\"loc\",[null,[7,8],[7,74]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 14,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"flex\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"border-right pt3 mr2 integrationsSidebar\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"nav\");\n        dom.setAttribute(el3,\"class\",\"mx-auto\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"h6 uppercase gray fw-500 m2\");\n        var el5 = dom.createTextNode(\"Integrations\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex-auto\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [1, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(element1,3,3);\n        morphs[1] = dom.createMorphAt(element1,5,5);\n        morphs[2] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"link-to\",[\"All Integrations\",\"settings.integrations.index\"],[],[\"loc\",[null,[5,6],[5,66]]]],\n        [\"block\",\"if\",[[\"get\",\"hasIntegrations\",[\"loc\",[null,[6,12],[6,27]]]]],[],0,null,[\"loc\",[null,[6,6],[8,13]]]],\n        [\"content\",\"outlet\",[\"loc\",[null,[12,4],[12,14]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/webhook-config-box/component', ['exports', 'ember', 'ember-validations'], function (exports, Ember, Validations) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(Validations['default'], {\n    tagName: '', // don't wrap content in html tag,\n    webhook: null, // attrs\n\n    validations: {\n      'webhook.url': {\n        presence: true\n      }\n    },\n\n    validated: false,\n\n    isUrlBlank: Ember['default'].computed.empty('webhook.url'),\n    isWebhookEditable: Ember['default'].computed.or('webhook.enabled', 'webhook.isUrlBlank'),\n    // Check if the record exist, we don't care about the state or if is new.\n    connected: Ember['default'].computed.notEmpty('webhook'),\n    enabled: Ember['default'].computed('webhook.enabled', 'enabling', {\n      get: function get() {\n        return this.get('webhook.enabled') && !this.get('enabling');\n      }\n    }).readOnly(),\n    isOpen: Ember['default'].computed.equal('integration', 'webhook'),\n    isDirty: Ember['default'].computed('webhook.{isDirty,isNew}', 'isUrlBlank', {\n      get: function get() {\n        var isDirty = undefined;\n\n        if (this.get('webhook.isNew') && this.get('isUrlBlank')) {\n          isDirty = false;\n        } else {\n          isDirty = this.get('webhook.hasDirtyAttributes') && !this.get('enabling');\n        }\n\n        return isDirty;\n      }\n    }).readOnly(),\n\n    confirmAction: function confirmAction() {\n      return window.confirm(\"You will lose any unsaved changes. Are you sure you want to continue?\");\n    },\n    destroyRecord: function destroyRecord() {\n      return this.get('webhook').destroyRecord();\n    },\n    close: function close() {\n      var _this = this;\n\n      if (this.get('webhook') && this.get('isDirty') && this.confirmAction()) {\n        this.get('webhook').rollbackAttributes();\n      } else if (this.get('isDirty')) {\n        return;\n      }\n      if (this.get('webhook.isNew')) {\n        if (this.confirmAction()) {\n          this.destroyRecord().then(function () {\n            _this.sendAction('integrationDisconnected');\n          });\n        } else {\n          return;\n        }\n      }\n\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'webhook');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    actions: {\n      disconnect: function disconnect(callback) {\n        var _this2 = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        }\n\n        var promise = this.destroyRecord().then(function () {\n          _this2.close();\n          _this2.sendAction('integrationDisconnected');\n        });\n        callback(promise);\n\n        this.sendAction('flashPromise', promise);\n      },\n      save: function save(callback) {\n        var _this3 = this;\n\n        this.set('validated', true);\n\n        var model = this.get('webhook');\n\n        var promise = this.validate().then(function () {\n          var savePromise = model.save().then(function () {\n            _this3.set('validated', false);\n            return _this3.close();\n          });\n\n          _this3.sendAction('flashPromise', savePromise);\n\n          return savePromise;\n        });\n\n        callback(promise);\n      },\n      disable: function disable(callback) {\n        var _this4 = this;\n\n        this.set('webhook.enabled', false);\n\n        var promise = this.get('webhook').save().then(function () {\n          _this4.close();\n        });\n\n        callback(promise);\n\n        this.sendAction('flashPromise', promise);\n      },\n      enable: function enable(callback) {\n        var _this5 = this;\n\n        this.set('webhook.enabled', true);\n        this.set('enabling', true);\n        var promise = this.get('webhook').save()['finally'](function () {\n          _this5.set('enabling', false);\n        });\n\n        callback(promise);\n        this.sendAction('flashPromise', promise);\n      },\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/webhook-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 12,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"webhook.url\",[\"loc\",[null,[11,12],[11,27]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 12,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 14,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            Write your own Envoy integrations.\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 18,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 26,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n              var el2 = dom.createTextNode(\"×\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element1 = dom.childAt(fragment, [1]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createElementMorph(element1);\n              morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"close\"],[],[\"loc\",[null,[19,13],[19,31]]]],\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[20,10],[25,12]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 26,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 30,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue mr1\");\n              var el2 = dom.createTextNode(\"\\n            Configure\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element0);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[27,50],[27,67]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 31,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[18,14],[18,20]]]]],[],0,1,[\"loc\",[null,[18,8],[30,15]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 31,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 38,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"async-button\",[],[\"action\",\"enable\",\"class\",\"btn btn--small btn--blue\",\"default\",\"Enable\",\"pending\",\"Enabling...\"],[\"loc\",[null,[32,8],[37,10]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child4 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 78,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 93,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(2);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"disable\",\"class\",\"btn btn--small btn--outlineFill\",\"default\",\"Disable\",\"pending\",\"Disabling...\",\"tabindex\",\"-1\"],[\"loc\",[null,[79,10],[85,12]]]],\n              [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\",\"reset\",true],[\"loc\",[null,[86,10],[92,12]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 41,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 95,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"clearfix\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"col col-6\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"col col-10\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            var el5 = dom.createTextNode(\"A webhook makes Envoy servers perform an HTTP request to the specified URL whenever a new visitor signs into your office. The request includes a \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"code\");\n            var el6 = dom.createTextNode(\"POST\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\" with the following parameters:\\n              \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"ul\");\n            var el6 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"li\");\n            var el7 = dom.createElement(\"code\");\n            var el8 = dom.createTextNode(\"entry\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            var el7 = dom.createTextNode(\" (details about the visitor)\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"li\");\n            var el7 = dom.createElement(\"code\");\n            var el8 = dom.createTextNode(\"status\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            var el7 = dom.createTextNode(\" (either \");\n            dom.appendChild(el6, el7);\n            var el7 = dom.createElement(\"code\");\n            var el8 = dom.createTextNode(\"'sign_in'\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            var el7 = dom.createTextNode(\" or \");\n            dom.appendChild(el6, el7);\n            var el7 = dom.createElement(\"code\");\n            var el8 = dom.createTextNode(\"'sign_out'\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            var el7 = dom.createTextNode(\")\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"li\");\n            var el7 = dom.createElement(\"code\");\n            var el8 = dom.createTextNode(\"timestamp\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            var el7 = dom.createTextNode(\" (in UTC as unix time)\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"li\");\n            var el7 = dom.createElement(\"code\");\n            var el8 = dom.createTextNode(\"token\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            var el7 = dom.createTextNode(\" (a random string)\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"li\");\n            var el7 = dom.createTextNode(\"\\n                  a signature of the parameters (to ensure the request is actually coming from us). The signature is calculated as such:\\n                  \");\n            dom.appendChild(el6, el7);\n            var el7 = dom.createElement(\"code\");\n            var el8 = dom.createTextNode(\"OpenSSL::HMAC.hexdigest (OpenSSL::Digest::Digest.new ('sha256'), api_key, '%s%s' % [timestamp, token])\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            var el7 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            var el5 = dom.createTextNode(\"A great way to test this and experiment is to use \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"a\");\n            dom.setAttribute(el5,\"href\",\"http://requestb.in/\");\n            dom.setAttribute(el5,\"target\",\"_blank\");\n            dom.setAttribute(el5,\"tabindex\",\"-1\");\n            var el6 = dom.createTextNode(\"RequestBin\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\" (but \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"strong\");\n            var el6 = dom.createTextNode(\"only\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\" for testing!)\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            var el5 = dom.createTextNode(\"Note that we retry accessing your servers 5 times over the span of 10 minutes, after which the request will be dropped if unsuccessful.\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            var el5 = dom.createTextNode(\"If you need help with getting the webhook working, feel free to \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"a\");\n            dom.setAttribute(el5,\"href\",\"https://envoy.co/contact/\");\n            dom.setAttribute(el5,\"target\",\"_blank\");\n            var el6 = dom.createTextNode(\"contact us\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\".\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"right\");\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1, 1]),1,1);\n            morphs[1] = dom.createMorphAt(dom.childAt(fragment, [3]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"webhook.url\",[\"loc\",[null,[46,18],[46,29]]]]],[],[]],\"inputClass\",\"integrations-webhookurl\",\"label\",\"Your Webhook URL\",\"autofocus\",\"true\",\"placeholder\",\"https://starkindustries.com/jarvis/D3c3F7ASh7cxZA\",\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[51,22],[51,31]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.webhook.url\",[\"loc\",[null,[52,22],[52,40]]]]],[],[]]],[\"loc\",[null,[45,12],[53,14]]]],\n            [\"block\",\"if\",[[\"get\",\"webhook.id\",[\"loc\",[null,[78,14],[78,24]]]]],[],0,null,[\"loc\",[null,[78,8],[93,15]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 97,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-webhook\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/webhook.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Webhooks\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0 js-byline\");\n          var el5 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"        \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var element3 = dom.childAt(element2, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element3, [3, 3]),1,1);\n          morphs[1] = dom.createMorphAt(element3,5,5);\n          morphs[2] = dom.createMorphAt(element2,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"webhook.url\",[\"loc\",[null,[10,16],[10,27]]]]],[],0,1,[\"loc\",[null,[10,10],[14,17]]]],\n          [\"block\",\"if\",[[\"get\",\"enabled\",[\"loc\",[null,[17,12],[17,19]]]]],[],2,3,[\"loc\",[null,[17,6],[38,13]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[41,17],[41,23]]]]],[\"class\",\"js-tokenized\"],4,null,[\"loc\",[null,[41,4],[95,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3, child4]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 98,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/webhook-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[97,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/settings/integrations/zapier-config-box/component', ['exports', 'ember', 'garaje/helpers/array-to-sentence', 'garaje/config/environment'], function (exports, Ember, array_to_sentence, config) {\n\n  'use strict';\n\n  var htmlSafe = Ember['default'].String.htmlSafe;\n\n  exports['default'] = Ember['default'].Component.extend({\n    integrationsManager: Ember['default'].inject.service(),\n\n    showPopularZaps: config['default'].showPopularZaps,\n    company: Ember['default'].computed.alias('location.company.content'),\n    zapierIntegration: Ember['default'].computed.alias('company.zapierIntegration.content'),\n    connected: Ember['default'].computed.notEmpty('zapierIntegration'),\n    isOpen: Ember['default'].computed.equal('integration', 'zapier'),\n\n    close: function close() {\n      this.sendAction('closeAction');\n    },\n    open: function open() {\n      this.sendAction('openAction', 'zapier');\n    },\n    confirmDisconnect: function confirmDisconnect() {\n      return window.confirm('Are you sure you want to disconnect this integration?');\n    },\n    connectedTo: Ember['default'].computed('zapierIntegration.granteeEmails', {\n      get: function get() {\n        var emails = this.get('zapierIntegration.granteeEmails').split(',').map(function (email) {\n          return '<b>' + email + '</b>';\n        });\n\n        return htmlSafe(array_to_sentence.arrayToSentence(emails));\n      }\n    }).readOnly(),\n\n    actions: {\n      open: function open() {\n        this.open();\n      },\n      close: function close() {\n        this.close();\n      },\n      disconnect: function disconnect(callback) {\n        var _this = this;\n\n        if (!this.confirmDisconnect()) {\n          return callback(Ember['default'].RSVP.resolve({}));\n        } else {\n          var _ret = (function () {\n            var zapierIntegration = _this.get('zapierIntegration');\n            var promise = zapierIntegration.destroyRecord().then(function () {\n              zapierIntegration.unloadRecord();\n              _this.close();\n              _this.sendAction('integrationDisconnected');\n            });\n\n            return {\n              v: callback(promise)\n            };\n          })();\n\n          if (typeof _ret === 'object') return _ret.v;\n        }\n      }\n    }\n  });\n\n});","define('garaje/settings/integrations/zapier-config-box/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 11,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 13,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/zapier-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element3 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element3);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"close\"],[],[\"loc\",[null,[12,11],[12,29]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/zapier-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue mr1\");\n            var el2 = dom.createTextNode(\"\\n          Configure\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element2 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element2);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"open\"],[],[\"loc\",[null,[14,48],[14,65]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 38,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 40,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/settings/integrations/zapier-config-box/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"script\");\n              dom.setAttribute(el1,\"src\",\"https://zapier.com/zapbook/embed/widget.js?services=envoy&iframe=true&limit=6\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 20,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 53,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/settings/integrations/zapier-config-box/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h4\");\n            var el3 = dom.createTextNode(\"Triggers\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"\\n          Visitor finishes signing in \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"b\");\n            var el4 = dom.createTextNode(\"(\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\")\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"span\");\n            dom.setAttribute(el3,\"class\",\"flex flex-center\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"span\");\n            dom.setAttribute(el4,\"class\",\"flex-auto\");\n            var el5 = dom.createTextNode(\"Visitor signs out \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"b\");\n            var el6 = dom.createTextNode(\"(\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createComment(\"\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\")\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"a\");\n            dom.setAttribute(el4,\"href\",\"https://zapier.com/zapbook/envoy/\");\n            dom.setAttribute(el4,\"target\",\"_blank\");\n            dom.setAttribute(el4,\"class\",\"btn btn--small btn--blue\");\n            var el5 = dom.createTextNode(\"Configure Actions on Zapier.com\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"py2 border-bottom\");\n            var el3 = dom.createTextNode(\"\\n          Visitor is pre-registered \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"b\");\n            var el4 = dom.createTextNode(\"(\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\")\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"pt3 pb2 border-bottom\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"h4\");\n            dom.setAttribute(el3,\"class\",\"mb2\");\n            var el4 = dom.createTextNode(\"Popular Zaps\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"flex flex-center py2\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"img\");\n            dom.setAttribute(el3,\"src\",\"assets/images/integrations/zapier@2x.png\");\n            dom.setAttribute(el3,\"style\",\"width:40px;height:40px\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"h4\");\n            var el5 = dom.createTextNode(\"Envoy\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            dom.setAttribute(el4,\"class\",\"m0\");\n            var el5 = dom.createTextNode(\"Connected to \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\".\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var element1 = dom.childAt(element0, [11]);\n            var morphs = new Array(6);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [3, 1]),1,1);\n            morphs[1] = dom.createMorphAt(dom.childAt(element0, [5, 1, 1, 1]),1,1);\n            morphs[2] = dom.createMorphAt(dom.childAt(element0, [7, 1]),1,1);\n            morphs[3] = dom.createMorphAt(dom.childAt(element0, [9]),3,3);\n            morphs[4] = dom.createMorphAt(dom.childAt(element1, [3, 3]),1,1);\n            morphs[5] = dom.createMorphAt(element1,5,5);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"pluralized-word\",[[\"get\",\"zapierIntegration.entryCreatedCount\",[\"loc\",[null,[24,60],[24,95]]]],\"zap\"],[],[\"loc\",[null,[24,42],[24,103]]]],\n            [\"inline\",\"pluralized-word\",[[\"get\",\"zapierIntegration.signOutCount\",[\"loc\",[null,[28,76],[28,106]]]],\"zap\"],[],[\"loc\",[null,[28,58],[28,114]]]],\n            [\"inline\",\"pluralized-word\",[[\"get\",\"zapierIntegration.inviteCreatedCount\",[\"loc\",[null,[33,58],[33,94]]]],\"zap\"],[],[\"loc\",[null,[33,40],[33,102]]]],\n            [\"block\",\"if\",[[\"get\",\"showPopularZaps\",[\"loc\",[null,[38,16],[38,31]]]]],[],0,null,[\"loc\",[null,[38,10],[40,17]]]],\n            [\"content\",\"connectedTo\",[\"loc\",[null,[48,39],[48,54]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"disconnect\",\"class\",\"btn btn--small btn--redOutlineFill flex-none\",\"default\",\"Disconnect\",\"pending\",\"Disconnecting...\"],[\"loc\",[null,[50,10],[50,147]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 55,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/settings/integrations/zapier-config-box/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-integrations-zapier-config\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/integrations/zapier.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Zapier\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Connected to \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var element5 = dom.childAt(element4, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element5, [3, 3]),1,1);\n          morphs[1] = dom.createMorphAt(element5,5,5);\n          morphs[2] = dom.createMorphAt(element4,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"connectedTo\",[\"loc\",[null,[9,35],[9,50]]]],\n          [\"block\",\"if\",[[\"get\",\"isOpen\",[\"loc\",[null,[11,12],[11,18]]]]],[],0,1,[\"loc\",[null,[11,6],[17,13]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[20,17],[20,23]]]]],[\"class\",\"js-tokenized\"],2,null,[\"loc\",[null,[20,4],[53,18]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 56,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/settings/integrations/zapier-config-box/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"connected\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[55,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/all-filter/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    syncManager: Ember['default'].inject.service(),\n\n    isActive: Ember['default'].computed.equal('integration.filterType', 'unfiltered'),\n    neverSynced: Ember['default'].computed.equal('company.employeesSyncState', 'never'),\n\n    isDirty: Ember['default'].computed.or('integration.hasDirtyAttributes', 'neverSynced'),\n\n    setFilter: function setFilter() {\n      this.set('integration.filters', []);\n      return this.get('integration').save();\n    },\n\n    _resetResults: Ember['default'].observer('isActive', function () {\n      if (!this.get('isActive')) {\n        this.set('search', null);\n      }\n    }),\n\n    actions: {\n      activate: function activate() {\n        if (!this.get('isActive')) {\n          this.set('integration.filterType', 'unfiltered');\n        }\n      },\n      save: function save() {\n        this.set('search', null);\n        return this.get('integration').save();\n      },\n      cancel: function cancel() {\n        this.get('integration').rollbackAttributes();\n      },\n      test: function test(callback) {\n        var _this = this;\n\n        this.sendAction('hideFlash');\n\n        var promise = this.attrs.preview(this.get('integration')).then(function (data) {\n          _this.set('search', {\n            results: data\n          });\n        }, function (response) {\n          _this.attrs.handleFailedQuery(response);\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/all-filter/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 10,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 19,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"p\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"test\",\"class\",\"btn btn--medium btn--blue\",\"default\",\"Test Filter\",\"pending\",\"Fetching results...\"],[\"loc\",[null,[12,12],[17,14]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 20,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 32,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"p\");\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"button\");\n                dom.setAttribute(el2,\"class\",\"btn btn--medium btn--redHoverFill\");\n                var el3 = dom.createTextNode(\"\\n                Cancel\\n              \");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element2 = dom.childAt(fragment, [1]);\n                var element3 = dom.childAt(element2, [3]);\n                var morphs = new Array(2);\n                morphs[0] = dom.createMorphAt(element2,1,1);\n                morphs[1] = dom.createElementMorph(element3);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green btn--medium\",\"default\",\"Save Filter\",\"pending\",\"Saving...\"],[\"loc\",[null,[22,14],[27,16]]]],\n                [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[28,64],[28,83]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 19,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 33,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"liquid-if\",[[\"get\",\"isDirty\",[\"loc\",[null,[20,23],[20,30]]]]],[],0,null,[\"loc\",[null,[20,10],[32,24]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child2 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 47,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 57,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"\\n          \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"cancel\",\"class\",\"btn btn--medium btn--redHoverFill\",\"default\",\"Cancel\",\"pending\",\"Canceling...\",\"fulfilled\",\"Canceled\"],[\"loc\",[null,[49,10],[55,12]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 67,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 73,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"tr\");\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element0 = dom.childAt(fragment, [1]);\n                var morphs = new Array(3);\n                morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n                morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n                morphs[2] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"employee.name\",[\"loc\",[null,[69,43],[69,60]]]],\n                [\"content\",\"employee.email\",[\"loc\",[null,[70,43],[70,61]]]],\n                [\"content\",\"employee.phone_number\",[\"loc\",[null,[71,43],[71,68]]]]\n              ],\n              locals: [\"employee\"],\n              templates: []\n            };\n          }());\n          var child2 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 73,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 77,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"tr\");\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                var el3 = dom.createTextNode(\"No users matched your search.\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 35,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 80,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"p2 rounded bg-yellow-10 center border mt3 js-sync-list\");\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h4\");\n              var el3 = dom.createTextNode(\"Example active users.\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"p\");\n              var el3 = dom.createTextNode(\"Check to ensure correct formatting. To filter employees, select a company-wide or per-location filter below.\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h2\");\n              dom.setAttribute(el2,\"class\",\"left-align mt3 mb1 px2\");\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\" (All Locations)\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"table\");\n              dom.setAttribute(el2,\"class\",\"table-light js-csv-imported-list\");\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"tr\");\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Full Name\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Email Address\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Mobile Number\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"          \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n        \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element1 = dom.childAt(fragment, [1]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createMorphAt(element1,5,5);\n              morphs[1] = dom.createMorphAt(element1,7,7);\n              morphs[2] = dom.createMorphAt(dom.childAt(element1, [9]),0,0);\n              morphs[3] = dom.createMorphAt(dom.childAt(element1, [11]),3,3);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green btn--medium\",\"default\",\"Save Filter and Sync\",\"pending\",\"Saving...\",\"fulfilled\",\"Saved\"],[\"loc\",[null,[40,10],[46,12]]]],\n              [\"block\",\"unless\",[[\"get\",\"neverSynced\",[\"loc\",[null,[47,20],[47,31]]]]],[],0,null,[\"loc\",[null,[47,10],[57,21]]]],\n              [\"content\",\"company.name\",[\"loc\",[null,[59,45],[59,61]]]],\n              [\"block\",\"each\",[[\"get\",\"search.results\",[\"loc\",[null,[67,20],[67,34]]]]],[],1,2,[\"loc\",[null,[67,12],[77,21]]]]\n            ],\n            locals: [],\n            templates: [child0, child1, child2]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 6,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 82,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dd\");\n            dom.setAttribute(el1,\"class\",\"js-sync-company-wide-options\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"form\");\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"This will synchronize \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"b\");\n            var el5 = dom.createTextNode(\"all active users\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" from your identity provider.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"      \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element4, [1]),3,3);\n            morphs[1] = dom.createMorphAt(element4,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"previewEnabled\",[\"loc\",[null,[10,14],[10,28]]]]],[],0,1,[\"loc\",[null,[10,8],[33,15]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"search\",[\"loc\",[null,[35,19],[35,25]]]]],[],2,null,[\"loc\",[null,[35,6],[80,20]]]]\n          ],\n          locals: [],\n          templates: [child0, child1, child2]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 83,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-if\",[[\"get\",\"isDirty\",[\"loc\",[null,[6,15],[6,22]]]]],[],0,null,[\"loc\",[null,[6,2],[82,16]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 84,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/all-filter/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"dt\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"b\");\n        var el3 = dom.createTextNode(\"Sync all employees\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element5 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createAttrMorph(element5, 'class');\n        morphs[1] = dom.createElementMorph(element5);\n        morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[1,15],[1,23]]]],\"active\"],[],[\"loc\",[null,[1,10],[1,34]]]]],\n        [\"element\",\"action\",[\"activate\"],[],[\"loc\",[null,[1,35],[1,56]]]],\n        [\"block\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[5,6],[5,14]]]]],[],0,null,[\"loc\",[null,[5,0],[83,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/company-filter/component', ['exports', 'ember', 'garaje/utils/flash'], function (exports, Ember, flashMessage) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    isActive: Ember['default'].computed.equal('integration.filterType', 'company'),\n    isOpen: Ember['default'].computed.alias('isActive'),\n    neverSynced: Ember['default'].computed.empty('company.employeesLastSyncAt'),\n\n    availableFilters: Ember['default'].computed('integration.filters.[]', 'filterOptions.[]', {\n      get: function get() {\n        var filters = this.get('integration.filters').mapBy('name');\n\n        return this.get('filterOptions').reject(function (filter) {\n          return filters.indexOf(filter.name) >= 0;\n        });\n      }\n    }).readOnly(),\n\n    filterOperations: [{\n      name: 'equals',\n      value: '='\n    }, {\n      name: 'contains',\n      value: '=~'\n    }],\n\n    syncManager: Ember['default'].inject.service(),\n\n    filters: [],\n\n    doSearch: function doSearch(query, deferred) {\n      this.attrs.searchGroup(query, deferred);\n    },\n\n    setFilter: function setFilter() {\n      return this.get('integration').save();\n    },\n\n    actions: {\n      activate: function activate() {\n        if (!this.get('isActive')) {\n          this.set('search', null);\n          this.set('integration.filterType', 'company');\n\n          var attrs = this.get('integration').changedAttributes();\n          if (this.get('integration.hasDirtyAttributes') && !attrs.filterType) {\n            this.get('integration').rollbackAttributes();\n          } else {\n            this.set('integration.filters', []);\n          }\n        }\n      },\n      test: function test(callback) {\n        var _this = this;\n\n        this.attrs.hideFlash();\n        var promise = undefined;\n\n        if (!this.get('integration.filters.length')) {\n          flashMessage['default'].call(this, 'error', 'Select at least 1 filter!');\n\n          promise = Ember['default'].RSVP.resolve(false);\n        } else {\n          promise = this.attrs.preview(this.get('integration')).then(function (data) {\n            _this.set('search', {\n              results: data\n            });\n          }, function (response) {\n            _this.attrs.handleFailedQuery(response);\n          });\n        }\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      save: function save(callback) {\n        var _this2 = this;\n\n        var promise = this.setFilter().then(function () {\n          _this2.set('search', null);\n          flashMessage['default'].call(_this2, 'success', 'Saved!');\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      cancel: function cancel() {\n        this.get('integration').rollbackAttributes();\n        this.setProperties({\n          search: null\n        });\n      },\n\n      addFilter: function addFilter(evt) {\n        this.attrs.hideFlash();\n        evt.stopPropagation();\n\n        var target = evt.target;\n        var filterName = target.value;\n        var filter = this.get('availableFilters').findBy('name', filterName);\n        this.attrs.addFilter(filter);\n\n        target.selectedIndex = 0;\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/company-filter/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 6,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 8,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"h3\");\n            var el2 = dom.createTextNode(\"It looks like you don't have custom user fields to filter by. Please go your identity provider and define some.\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 28,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 30,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"sync-settings/group-select\",[],[\"groups\",[\"subexpr\",\"@mut\",[[\"get\",\"directoryGroups\",[\"loc\",[null,[29,56],[29,71]]]]],[],[]],\"value\",[\"subexpr\",\"mut\",[[\"get\",\"filter.value\",[\"loc\",[null,[29,83],[29,95]]]]],[],[\"loc\",[null,[29,78],[29,96]]]]],[\"loc\",[null,[29,20],[29,98]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 30,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 32,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"input\",[],[\"id\",[\"subexpr\",\"concat\",[\"company\",\"-\",[\"get\",\"filter.name\",[\"loc\",[null,[31,53],[31,64]]]]],[],[\"loc\",[null,[31,31],[31,65]]]],\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"filter.value\",[\"loc\",[null,[31,72],[31,84]]]]],[],[]],\"placeholder\",\"Value\",\"autofocus\",true,\"class\",\"mb0\"],[\"loc\",[null,[31,20],[31,133]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 13,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 39,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"tr\");\n              var el2 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"td\");\n              dom.setAttribute(el2,\"class\",\"p0\");\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"td\");\n              dom.setAttribute(el2,\"class\",\"p0 center\");\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"td\");\n              dom.setAttribute(el2,\"class\",\"p0\");\n              var el3 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"td\");\n              dom.setAttribute(el2,\"class\",\"p0 center\");\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"span\");\n              dom.setAttribute(el3,\"class\",\"js-remove-filter\");\n              dom.setAttribute(el3,\"style\",\"font-size:26px;cursor:pointer;line-height:30px\");\n              var el4 = dom.createTextNode(\"×\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element7 = dom.childAt(fragment, [1]);\n              var element8 = dom.childAt(element7, [7, 1]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createMorphAt(dom.childAt(element7, [1]),1,1);\n              morphs[1] = dom.createMorphAt(dom.childAt(element7, [3]),1,1);\n              morphs[2] = dom.createMorphAt(dom.childAt(element7, [5]),1,1);\n              morphs[3] = dom.createElementMorph(element8);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"filter.label\",[\"loc\",[null,[16,32],[16,44]]]]],[],[]],\"disabled\",true,\"class\",\"mb0\"],[\"loc\",[null,[16,18],[16,72]]]],\n              [\"inline\",\"x-select-blockless\",[],[\"id\",[\"subexpr\",\"concat\",[\"js-op-company\",\"-\",[\"get\",\"filter.name\",[\"loc\",[null,[20,49],[20,60]]]]],[],[\"loc\",[null,[20,21],[20,61]]]],\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"filterOperations\",[\"loc\",[null,[21,26],[21,42]]]]],[],[]],\"value\",[\"subexpr\",\"mut\",[[\"get\",\"filter.operation\",[\"loc\",[null,[22,29],[22,45]]]]],[],[\"loc\",[null,[22,24],[22,46]]]],\"optionValuePath\",\"content.value\",\"optionLabelPath\",\"content.name\"],[\"loc\",[null,[19,18],[25,20]]]],\n              [\"block\",\"if\",[[\"subexpr\",\"eq\",[[\"get\",\"filter.name\",[\"loc\",[null,[28,28],[28,39]]]],\"_okta_group\"],[],[\"loc\",[null,[28,24],[28,54]]]]],[],0,1,[\"loc\",[null,[28,18],[32,25]]]],\n              [\"element\",\"action\",[[\"get\",\"removeFilter\",[\"loc\",[null,[36,113],[36,125]]]],[\"get\",\"filter\",[\"loc\",[null,[36,126],[36,132]]]]],[],[\"loc\",[null,[36,104],[36,134]]]]\n            ],\n            locals: [\"filter\"],\n            templates: [child0, child1]\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 39,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 41,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"p\");\n              var el2 = dom.createTextNode(\"Select at least 1 filter\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child2 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 47,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 49,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"option\");\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element5 = dom.childAt(fragment, [1]);\n                var morphs = new Array(2);\n                morphs[0] = dom.createAttrMorph(element5, 'value');\n                morphs[1] = dom.createMorphAt(element5,0,0);\n                return morphs;\n              },\n              statements: [\n                [\"attribute\",\"value\",[\"get\",\"filter.name\",[\"loc\",[null,[48,32],[48,43]]]]],\n                [\"content\",\"filter.label\",[\"loc\",[null,[48,46],[48,62]]]]\n              ],\n              locals: [\"filter\"],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 44,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 51,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"select\");\n              dom.setAttribute(el1,\"style\",\"width:auto;padding-right:30px;\");\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"option\");\n              var el3 = dom.createTextNode(\"Add filter\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element6 = dom.childAt(fragment, [1]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createAttrMorph(element6, 'onchange');\n              morphs[1] = dom.createMorphAt(element6,3,3);\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"onchange\",[\"subexpr\",\"action\",[\"addFilter\"],[],[\"loc\",[null,[45,29],[45,51]]]]],\n              [\"block\",\"each\",[[\"get\",\"availableFilters\",[\"loc\",[null,[47,22],[47,38]]]]],[\"key\",\"@identity\"],0,null,[\"loc\",[null,[47,14],[49,23]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child3 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 54,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 63,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"p\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"test\",\"class\",\"btn btn--medium btn--blue\",\"default\",\"Test Filter\",\"pending\",\"Fetching results...\"],[\"loc\",[null,[56,12],[61,14]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child4 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 64,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 76,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"p\");\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"button\");\n                dom.setAttribute(el2,\"class\",\"btn btn--medium btn--redHoverFill\");\n                var el3 = dom.createTextNode(\"\\n                Cancel\\n              \");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element3 = dom.childAt(fragment, [1]);\n                var element4 = dom.childAt(element3, [3]);\n                var morphs = new Array(2);\n                morphs[0] = dom.createMorphAt(element3,1,1);\n                morphs[1] = dom.createElementMorph(element4);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green btn--medium\",\"default\",\"Save Filter\",\"pending\",\"Saving...\"],[\"loc\",[null,[66,14],[71,16]]]],\n                [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[72,64],[72,83]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 63,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 77,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"liquid-if\",[[\"get\",\"integration.hasDirtyAttributes\",[\"loc\",[null,[64,23],[64,53]]]]],[],0,null,[\"loc\",[null,[64,10],[76,24]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child5 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 92,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 96,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"button\");\n                dom.setAttribute(el1,\"class\",\"btn btn--medium btn--redHoverFill\");\n                var el2 = dom.createTextNode(\"\\n              Cancel\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element1 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element1);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[93,62],[93,81]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 106,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 112,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"tr\");\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element0 = dom.childAt(fragment, [1]);\n                var morphs = new Array(3);\n                morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n                morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n                morphs[2] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"employee.name\",[\"loc\",[null,[108,43],[108,60]]]],\n                [\"content\",\"employee.email\",[\"loc\",[null,[109,43],[109,61]]]],\n                [\"content\",\"employee.phone_number\",[\"loc\",[null,[110,43],[110,68]]]]\n              ],\n              locals: [\"employee\"],\n              templates: []\n            };\n          }());\n          var child2 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 112,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 116,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"tr\");\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                var el3 = dom.createTextNode(\"No employees matched your search.\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 80,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 119,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"p2 rounded bg-yellow-10 center border mt3 js-sync-list\");\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h4\");\n              var el3 = dom.createTextNode(\"Example active users that match filters.\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"p\");\n              var el3 = dom.createTextNode(\"If you'd like to make changes, edit the filters or search parameters above before saving.\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h2\");\n              dom.setAttribute(el2,\"class\",\"left-align mt3 mb1 px2\");\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\" (All Locations)\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"table\");\n              dom.setAttribute(el2,\"class\",\"table-light js-csv-imported-list\");\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"tr\");\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Full Name\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Email Address\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Mobile Number\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"          \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n        \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element2 = dom.childAt(fragment, [1]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createMorphAt(element2,5,5);\n              morphs[1] = dom.createMorphAt(element2,7,7);\n              morphs[2] = dom.createMorphAt(dom.childAt(element2, [9]),0,0);\n              morphs[3] = dom.createMorphAt(dom.childAt(element2, [11]),3,3);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green\",\"default\",\"Save Filter and Sync\",\"pending\",\"Saving...\",\"fulfilled\",\"Saved\"],[\"loc\",[null,[85,10],[91,12]]]],\n              [\"block\",\"unless\",[[\"get\",\"neverSynced\",[\"loc\",[null,[92,20],[92,31]]]]],[],0,null,[\"loc\",[null,[92,10],[96,21]]]],\n              [\"content\",\"company.name\",[\"loc\",[null,[98,45],[98,61]]]],\n              [\"block\",\"each\",[[\"get\",\"search.results\",[\"loc\",[null,[106,20],[106,34]]]]],[],1,2,[\"loc\",[null,[106,12],[116,21]]]]\n            ],\n            locals: [],\n            templates: [child0, child1, child2]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 8,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 120,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"form\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"mb3\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"h4\");\n            var el4 = dom.createTextNode(\"All Locations\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"table\");\n            dom.setAttribute(el3,\"class\",\"mt2 mb1\");\n            var el4 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"We'll sync all users who match the filters above.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element9 = dom.childAt(fragment, [1]);\n            var element10 = dom.childAt(element9, [1]);\n            var morphs = new Array(4);\n            morphs[0] = dom.createMorphAt(dom.childAt(element10, [3]),1,1);\n            morphs[1] = dom.createMorphAt(element10,5,5);\n            morphs[2] = dom.createMorphAt(element9,3,3);\n            morphs[3] = dom.createMorphAt(fragment,3,3,contextualElement);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"each\",[[\"get\",\"integration.companyFilters\",[\"loc\",[null,[13,20],[13,46]]]]],[],0,1,[\"loc\",[null,[13,12],[41,21]]]],\n            [\"block\",\"if\",[[\"get\",\"availableFilters\",[\"loc\",[null,[44,16],[44,32]]]]],[],2,null,[\"loc\",[null,[44,10],[51,17]]]],\n            [\"block\",\"if\",[[\"get\",\"previewEnabled\",[\"loc\",[null,[54,14],[54,28]]]]],[],3,4,[\"loc\",[null,[54,8],[77,15]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"search\",[\"loc\",[null,[80,19],[80,25]]]]],[],5,null,[\"loc\",[null,[80,6],[119,20]]]]\n          ],\n          locals: [],\n          templates: [child0, child1, child2, child3, child4, child5]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 122,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"dd\");\n          dom.setAttribute(el1,\"class\",\"js-sync-company-wide-options\");\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"unless\",[[\"get\",\"filterOptions\",[\"loc\",[null,[6,14],[6,27]]]]],[],0,1,[\"loc\",[null,[6,4],[120,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 123,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/company-filter/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"dt\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"b\");\n        var el3 = dom.createTextNode(\"Sync specific employees company-wide\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\" (advanced)\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element11 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createAttrMorph(element11, 'class');\n        morphs[1] = dom.createElementMorph(element11);\n        morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[1,15],[1,23]]]],\"active\"],[],[\"loc\",[null,[1,10],[1,34]]]]],\n        [\"element\",\"action\",[\"activate\"],[],[\"loc\",[null,[1,35],[1,56]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[4,13],[4,19]]]]],[],0,null,[\"loc\",[null,[4,0],[122,14]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/controller', ['exports', 'ember', 'garaje/utils/flash'], function (exports, Ember, flashMessage) {\n\n  'use strict';\n\n  var _slice = Array.prototype.slice;\n  exports['default'] = Ember['default'].Controller.extend({\n    queryParams: 'filter-by',\n    'default': 'unfiltered',\n    locations: [],\n\n    syncSettingsComponent: Ember['default'].computed('currentLocation.company.directorySyncProvider', {\n      get: function get() {\n        var company = this.get('currentLocation.company.content');\n        var component = undefined;\n\n        if (company.get('googleApp.content')) {\n          component = 'sync-settings/google-apps';\n        } else if (company.get('oneLogin.content')) {\n          component = 'sync-settings/one-login';\n        } else {\n          component = 'sync-settings/okta-integration';\n        }\n\n        return component;\n      }\n    }).readOnly(),\n    actions: {\n      handleFailedQuery: function handleFailedQuery(response) {\n        var msg = response.errors.join(', ');\n\n        if (msg) {\n          flashMessage['default'].call(this, 'error', 'Error: ' + msg);\n        } else {\n          flashMessage['default'].call(this, 'error', 'Error: bad request');\n        }\n      },\n      // Workaround to get the actions to bubble up\n      // otherwise they won't\n      _hideFlash: function _hideFlash() {\n        this.send('hideFlash');\n      },\n      _showFlash: function _showFlash() {\n        var _arguments = _slice.call(arguments);\n\n        var type = _arguments[0];\n        var message = _arguments[1];\n\n        this.send('showFlash', type, message);\n      },\n      addFilter: function addFilter(integrationData, filter) {\n        var location_id = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n        filter = Ember['default'].Object.create(filter);\n\n        var filters = integrationData.get('filters');\n\n        filters.createFragment({\n          label: filter.get('label'),\n          name: filter.get('name'),\n          value: '',\n          locationId: location_id\n        });\n      },\n      removeFilter: function removeFilter(integrationData, filter) {\n        var filters = integrationData.get('filters');\n        filters.removeObject(filter);\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/google-apps/all-filter/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    googleSyncManager: Ember['default'].inject.service(),\n\n    isActive: Ember['default'].computed.equal('filter.type', 'unfiltered'),\n    neverSynced: Ember['default'].computed.equal('company.employeesSyncState', 'never'),\n\n    isDirty: Ember['default'].computed.or('filter.hasDirtyAttributes', 'neverSynced'),\n\n    setFilter: function setFilter() {\n      return this.get('googleSyncManager').setFilter(this.get('company'), 'unfiltered');\n    },\n\n    _resetResults: Ember['default'].observer('isActive', function () {\n      if (!this.get('isActive')) {\n        this.set('search', null);\n      }\n    }),\n\n    actions: {\n      activate: function activate() {\n        if (!this.get('isActive')) {\n          this.set('filter.type', 'unfiltered');\n        }\n      },\n      save: function save(callback) {\n        var _this = this;\n\n        var promise = this.setFilter().then(function () {\n          _this.set('search', null);\n          _this.sendAction('showFlash', 'success', 'Saved!');\n        });\n\n        callback(promise);\n      },\n      cancel: function cancel() {\n        this.get('filter').rollbackAttributes();\n      },\n      test: function test(callback) {\n        var _this2 = this;\n\n        this.sendAction('hideFlash');\n\n        var promise = this.get('googleSyncManager').companyFilter(this.get('googleApp'), '').then(function (data) {\n          _this2.set('search', {\n            results: data\n          });\n        }, function (response) {\n          _this2.sendAction('handleFailedQuery', response);\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/google-apps/all-filter/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 28,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 32,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/google-apps/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"button\");\n                dom.setAttribute(el1,\"class\",\"btn btn--medium btn--redHoverOutline\");\n                var el2 = dom.createTextNode(\"\\n              Cancel\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element2 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element2);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[29,65],[29,84]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 42,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 48,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/google-apps/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"tr\");\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\" \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element0 = dom.childAt(fragment, [1]);\n                var element1 = dom.childAt(element0, [1]);\n                var morphs = new Array(4);\n                morphs[0] = dom.createMorphAt(element1,0,0);\n                morphs[1] = dom.createMorphAt(element1,2,2);\n                morphs[2] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n                morphs[3] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"employee.first_name\",[\"loc\",[null,[44,43],[44,66]]]],\n                [\"content\",\"employee.last_name\",[\"loc\",[null,[44,67],[44,89]]]],\n                [\"content\",\"employee.email\",[\"loc\",[null,[45,43],[45,61]]]],\n                [\"content\",\"employee.phone_number\",[\"loc\",[null,[46,43],[46,68]]]]\n              ],\n              locals: [\"employee\"],\n              templates: []\n            };\n          }());\n          var child2 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 48,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 52,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/google-apps/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"tr\");\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                var el3 = dom.createTextNode(\"No users matched your search.\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 18,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 55,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/google-apps/all-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"p2 rounded bg-yellow-10 center border mt3 js-sync-list\");\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h4\");\n              dom.setAttribute(el2,\"class\",\"mb2\");\n              var el3 = dom.createTextNode(\"Review your list\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h2\");\n              dom.setAttribute(el2,\"class\",\"left-align mt3 mb1 px2\");\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\" (All Locations)\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"table\");\n              dom.setAttribute(el2,\"class\",\"table-light js-csv-imported-list\");\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"tr\");\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Full Name\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Email Address\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Mobile Number\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"          \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n        \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element3 = dom.childAt(fragment, [1]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createMorphAt(element3,3,3);\n              morphs[1] = dom.createMorphAt(element3,5,5);\n              morphs[2] = dom.createMorphAt(dom.childAt(element3, [7]),0,0);\n              morphs[3] = dom.createMorphAt(dom.childAt(element3, [9]),3,3);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green\",\"default\",\"Save Filter and Sync\",\"pending\",\"Saving...\",\"fulfilled\",\"Saved\"],[\"loc\",[null,[21,10],[27,12]]]],\n              [\"block\",\"unless\",[[\"get\",\"neverSynced\",[\"loc\",[null,[28,20],[28,31]]]]],[],0,null,[\"loc\",[null,[28,10],[32,21]]]],\n              [\"content\",\"company.name\",[\"loc\",[null,[34,45],[34,61]]]],\n              [\"block\",\"each\",[[\"get\",\"search.results\",[\"loc\",[null,[42,20],[42,34]]]]],[],1,2,[\"loc\",[null,[42,12],[52,21]]]]\n            ],\n            locals: [],\n            templates: [child0, child1, child2]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 57,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/google-apps/all-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dd\");\n            dom.setAttribute(el1,\"class\",\"js-sync-company-wide-options\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"form\");\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"This will synchronize \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"b\");\n            var el5 = dom.createTextNode(\"all employees\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" from your Google Directory.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element4, [1, 3]),1,1);\n            morphs[1] = dom.createMorphAt(element4,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"async-button\",[],[\"action\",\"test\",\"class\",\"btn btn--medium btn--blue\",\"default\",\"Test Filter\",\"pending\",\"Fetching results...\"],[\"loc\",[null,[10,10],[15,12]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"search\",[\"loc\",[null,[18,19],[18,25]]]]],[],0,null,[\"loc\",[null,[18,6],[55,20]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 58,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/google-apps/all-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-if\",[[\"get\",\"isDirty\",[\"loc\",[null,[5,15],[5,22]]]]],[],0,null,[\"loc\",[null,[5,2],[57,16]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 59,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/google-apps/all-filter/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"dt\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"b\");\n        var el3 = dom.createTextNode(\"Sync all employees\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element5 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createAttrMorph(element5, 'class');\n        morphs[1] = dom.createElementMorph(element5);\n        morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[1,15],[1,23]]]],\"active\"],[],[\"loc\",[null,[1,10],[1,34]]]]],\n        [\"element\",\"action\",[\"activate\"],[],[\"loc\",[null,[1,35],[1,56]]]],\n        [\"block\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[4,6],[4,14]]]]],[],0,null,[\"loc\",[null,[4,0],[58,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/google-apps/company-filter/component', ['exports', 'ember', 'garaje/utils/flash'], function (exports, Ember, flashMessage) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    _setup: Ember['default'].on('init', function () {\n      var query = this.get('filter.query');\n\n      if (query) {\n        Ember['default'].set(this, 'filterQuery', query);\n      }\n\n      // set observer\n      this._resetResults();\n    }),\n    _resetResults: Ember['default'].observer('isActive', function () {\n      if (!this.get('isActive')) {\n        this.set('search', null);\n      }\n    }),\n\n    filterQuery: '',\n    isActive: Ember['default'].computed.equal('filter.type', 'company'),\n    isOpen: Ember['default'].computed.alias('isActive'),\n    neverSynced: Ember['default'].computed.empty('company.employeesLastSyncAt'),\n\n    googleSyncManager: Ember['default'].inject.service(),\n\n    setFilter: function setFilter() {\n      var filters = {\n        query: this.get('filterQuery') || ''\n      };\n\n      return this.get('googleSyncManager').setFilter(this.get('company'), 'company', filters);\n    },\n\n    actions: {\n      queryChanged: function queryChanged() {\n        this.set('search', null);\n      },\n      activate: function activate() {\n        if (!this.get('isActive')) {\n          this.set('search', null);\n          Ember['default'].set(this.get('filter'), 'type', 'company');\n        }\n      },\n      test: function test(callback) {\n        var _this = this;\n\n        this.sendAction('hideFlash');\n\n        var query = this.get('filterQuery');\n\n        var promise = this.get('googleSyncManager').companyFilter(this.get('googleApp'), query).then(function (data) {\n          _this.set('search', {\n            results: data\n          });\n        }, function (response) {\n          _this.attrs.handleFailedQuery(response);\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      save: function save(callback) {\n        var _this2 = this;\n\n        var promise = this.setFilter().then(function () {\n          _this2.set('search', null);\n          flashMessage['default'].call(_this2, 'success', 'Saved!');\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      cancel: function cancel() {\n        this.get('filter').rollbackAttributes();\n        this.setProperties({\n          filterQuery: this.get('filter.query'),\n          search: null\n        });\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/google-apps/company-filter/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 33,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 37,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/google-apps/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"button\");\n              dom.setAttribute(el1,\"class\",\"btn btn--medium btn--redHoverOutline\");\n              var el2 = dom.createTextNode(\"\\n            Cancel\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element2 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element2);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[34,63],[34,82]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 47,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 53,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/google-apps/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"tr\");\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"td\");\n              dom.setAttribute(el2,\"class\",\"left-align py1\");\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\" \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"td\");\n              dom.setAttribute(el2,\"class\",\"left-align py1\");\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"td\");\n              dom.setAttribute(el2,\"class\",\"left-align py1\");\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [1]);\n              var element1 = dom.childAt(element0, [1]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createMorphAt(element1,0,0);\n              morphs[1] = dom.createMorphAt(element1,2,2);\n              morphs[2] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n              morphs[3] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"employee.first_name\",[\"loc\",[null,[49,41],[49,64]]]],\n              [\"content\",\"employee.last_name\",[\"loc\",[null,[49,65],[49,87]]]],\n              [\"content\",\"employee.email\",[\"loc\",[null,[50,41],[50,59]]]],\n              [\"content\",\"employee.phone_number\",[\"loc\",[null,[51,41],[51,66]]]]\n            ],\n            locals: [\"employee\"],\n            templates: []\n          };\n        }());\n        var child2 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 53,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 57,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/google-apps/company-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"tr\");\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"td\");\n              var el3 = dom.createTextNode(\"No users matched your search.\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 22,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 60,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/google-apps/company-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"p2 rounded bg-yellow-10 center border mt3 js-sync-list\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h4\");\n            var el3 = dom.createTextNode(\"Review your filtered list carefully\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"p\");\n            var el3 = dom.createTextNode(\"If you see any mistakes or wish to make changes, change your search parameters.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h2\");\n            dom.setAttribute(el2,\"class\",\"left-align mt3 mb1 px2\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\" (All Locations)\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"table\");\n            dom.setAttribute(el2,\"class\",\"table-light js-csv-imported-list\");\n            var el3 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"tr\");\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"th\");\n            var el5 = dom.createTextNode(\"Full Name\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"th\");\n            var el5 = dom.createTextNode(\"Email Address\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"th\");\n            var el5 = dom.createTextNode(\"Mobile Number\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"        \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element3 = dom.childAt(fragment, [1]);\n            var morphs = new Array(4);\n            morphs[0] = dom.createMorphAt(element3,5,5);\n            morphs[1] = dom.createMorphAt(element3,7,7);\n            morphs[2] = dom.createMorphAt(dom.childAt(element3, [9]),0,0);\n            morphs[3] = dom.createMorphAt(dom.childAt(element3, [11]),3,3);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green\",\"default\",\"Save Filter and Sync\",\"pending\",\"Saving...\",\"fulfilled\",\"Saved\"],[\"loc\",[null,[26,8],[32,10]]]],\n            [\"block\",\"unless\",[[\"get\",\"neverSynced\",[\"loc\",[null,[33,18],[33,29]]]]],[],0,null,[\"loc\",[null,[33,8],[37,19]]]],\n            [\"content\",\"company.name\",[\"loc\",[null,[39,43],[39,59]]]],\n            [\"block\",\"each\",[[\"get\",\"search.results\",[\"loc\",[null,[47,18],[47,32]]]]],[],1,2,[\"loc\",[null,[47,10],[57,19]]]]\n          ],\n          locals: [],\n          templates: [child0, child1, child2]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 62,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/google-apps/company-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"dd\");\n          dom.setAttribute(el1,\"class\",\"js-sync-company-wide-options\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"form\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"label\");\n          var el4 = dom.createTextNode(\"Company-Wide Search String\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          var el4 = dom.createTextNode(\"Use the \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"href\",\"https://developers.google.com/admin-sdk/directory/v1/guides/search-users\");\n          dom.setAttribute(el4,\"target\",\"_blank\");\n          var el5 = dom.createTextNode(\" Google Directory API\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\" to construct the filtering parameters you'd like to use.\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var element5 = dom.childAt(element4, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(element5,3,3);\n          morphs[1] = dom.createMorphAt(dom.childAt(element5, [7]),1,1);\n          morphs[2] = dom.createMorphAt(element4,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"filterQuery\",[\"loc\",[null,[8,20],[8,31]]]]],[],[]],\"placeholder\",\"All employees\",\"autofocus\",true,\"key-up\",\"queryChanged\"],[\"loc\",[null,[8,6],[8,98]]]],\n          [\"inline\",\"async-button\",[],[\"action\",\"test\",\"class\",\"btn btn--medium btn--blue\",\"default\",\"Test Filter\",\"pending\",\"Fetching results...\"],[\"loc\",[null,[13,8],[18,10]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"search\",[\"loc\",[null,[22,17],[22,23]]]]],[],0,null,[\"loc\",[null,[22,4],[60,18]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 63,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/google-apps/company-filter/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"dt\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"b\");\n        var el3 = dom.createTextNode(\"Sync specific employees company-wide\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\" (advanced)\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element6 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createAttrMorph(element6, 'class');\n        morphs[1] = dom.createElementMorph(element6);\n        morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[1,15],[1,23]]]],\"active\"],[],[\"loc\",[null,[1,10],[1,34]]]]],\n        [\"element\",\"action\",[\"activate\"],[],[\"loc\",[null,[1,35],[1,56]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[4,13],[4,19]]]]],[],0,null,[\"loc\",[null,[4,0],[62,14]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/google-apps/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    setDisplayFilter: Ember['default'].on('init', function () {\n      this.set('displayFilter', Ember['default'].get(this, 'filter.type'));\n\n      var integration = this.get('integrationData');\n\n      this.set('filter', this.get('googleSyncManager').loadFilter(integration));\n    }),\n\n    googleSyncManager: Ember['default'].inject.service(),\n    integrationData: Ember['default'].computed.alias('company.googleApp'),\n    enabled: Ember['default'].computed.alias('integrationData.enabled'),\n    domain: Ember['default'].computed.alias('integrationData.domain'),\n    lastSyncAt: Ember['default'].computed.alias('company.employeesLastSyncAt'),\n    isInvalid: Ember['default'].computed.equal('company.employeesSyncState', 'errored'),\n    connectedBy: Ember['default'].computed.alias('integrationData.connectedBy'),\n    syncErrorMessage: Ember['default'].computed.alias('integrationData.errorMessage'),\n    filter: {},\n\n    connected: Ember['default'].computed('integrationData.connected', {\n      get: function get() {\n        if (Object.keys(this.get('integrationData')).length !== 1) {\n          return this.get('integrationData.connected');\n        } else {\n          return true;\n        }\n      }\n    }),\n    fromNow: Ember['default'].computed.alias('company.syncedSince'),\n    actions: {\n      setFilter: function setFilter(filter, options, callback) {\n        var promise = this.get('googleSyncManager').setFilter(this.get('company'), filter, options);\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      sync: function sync() {\n        return this.get('googleSyncManager').sync(this.get('company').content);\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/google-apps/locations-filter/component', ['exports', 'ember', 'garaje/utils/flash'], function (exports, Ember, flashMessage) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    _setup: Ember['default'].on('init', function () {\n      Ember['default'].set(this, 'filters', this.defaultFilters());\n      this._resetResults();\n    }),\n    _resetResults: Ember['default'].observer('isActive', function () {\n      if (!this.get('isActive')) {\n        this.set('results', []);\n      }\n    }),\n    isVisible: Ember['default'].computed('locations.[]', {\n      get: function get() {\n        return this.get('locations.length') > 1;\n      }\n    }).readOnly(),\n    filters: [],\n    googleSyncManager: Ember['default'].inject.service(),\n\n    isActive: Ember['default'].computed.equal('filter.type', 'locations'),\n    isOpen: Ember['default'].computed.alias('isActive'),\n    neverSynced: Ember['default'].computed.empty('company.employeesLastSyncAt'),\n\n    defaultFilters: function defaultFilters() {\n      var filters = this.get('filter.locations') || [];\n      filters = filters.map(function (query) {\n        return Ember['default'].copy(query);\n      });\n\n      this.get('locations').forEach(function (location) {\n        var filter = filters.findBy('location_id', parseInt(location.get('id')));\n\n        if (!filter) {\n          filters.push({\n            location_id: parseInt(location.get('id')),\n            query: ''\n          });\n        }\n      });\n\n      return filters;\n    },\n    setFilter: function setFilter() {\n      var data = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n      var filters = data.filters || this.get('filters');\n\n      return this.get('googleSyncManager').setFilter(this.get('company'), 'locations', filters);\n    },\n\n    filterFor: function filterFor(location) {\n      var filters = this.get('filters');\n      return filters.findBy('location_id', parseInt(location.get('id')));\n    },\n    resetFilters: function resetFilters() {\n      this.get('filters').setObjects(this.defaultFilters());\n    },\n\n    actions: {\n      activate: function activate() {\n        this.set('results', []);\n        if (!this.get('isActive')) {\n          Ember['default'].set(this.get('filter'), 'type', 'locations');\n\n          this.set('filters', this.defaultFilters());\n        }\n      },\n      save: function save(callback) {\n        var _this = this;\n\n        var promise = this.setFilter().then(function () {\n          _this.set('results', []);\n          flashMessage['default'].call(_this, 'success', 'Saved!');\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      saveFilter: function saveFilter(location, value) {\n        this.set('results', []);\n\n        var filter = this.filterFor(location);\n\n        Ember['default'].set(filter, 'query', value);\n      },\n      test: function test(callback) {\n        var _this2 = this;\n\n        this.sendAction('hideFlash');\n        this.set('results', []);\n\n        var promise = this.get('googleSyncManager').locationsFilter(this.get('googleApp'), this.get('locations'), this.get('filters')).then(function (data) {\n          _this2.set('results', data);\n        }, function (response) {\n          _this2.attrs.handleFailedQuery(response);\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      cancel: function cancel() {\n        this.get('filter').rollbackAttributes();\n        this.set('results', []);\n        this.resetFilters();\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/google-apps/locations-filter/filter-input/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: '',\n\n    locationInfo: Ember['default'].computed('filters.[]', {\n      get: function get() {\n        return this.get('filters').findBy('location_id', parseInt(this.get('location.id')));\n      }\n    }).readOnly(),\n\n    query: Ember['default'].computed('locationInfo', {\n      get: function get() {\n\n        if (!this.get('locationInfo')) {\n          return '';\n        }\n\n        var query = Ember['default'].get(this.get('locationInfo'), 'query');\n\n        return query || '';\n      },\n\n      // we don't want to set the value let the action bubble that up\n      set: function set(k, v) {\n        return v;\n      }\n    }),\n\n    actions: {\n      save: function save(value) {\n        this.sendAction('save', this.get('location'), value);\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/google-apps/locations-filter/filter-input/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": false,\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 5,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/filter-input/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"label\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\" Search String\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(element0,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"location.nameWithCompanyName\",[\"loc\",[null,[2,2],[2,34]]]],\n        [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"query\",[\"loc\",[null,[3,16],[3,21]]]]],[],[]],\"placeholder\",\"All employees\",\"key-up\",\"save\"],[\"loc\",[null,[3,2],[3,65]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/sync-settings/google-apps/locations-filter/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 8,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 10,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"sync-settings/google-apps/locations-filter/filter-input\",[],[\"filters\",[\"subexpr\",\"@mut\",[[\"get\",\"filters\",[\"loc\",[null,[9,76],[9,83]]]]],[],[]],\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"location\",[\"loc\",[null,[9,93],[9,101]]]]],[],[]],\"save\",\"saveFilter\"],[\"loc\",[null,[9,10],[9,121]]]]\n            ],\n            locals: [\"location\"],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 35,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 39,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"button\");\n                dom.setAttribute(el1,\"class\",\"btn btn--medium btn--redHoverOutline\");\n                var el2 = dom.createTextNode(\"\\n              Cancel\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element2 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element2);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[36,65],[36,84]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 50,\n                      \"column\": 14\n                    },\n                    \"end\": {\n                      \"line\": 56,\n                      \"column\": 16\n                    }\n                  },\n                  \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 1,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"tr\");\n                  var el2 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createElement(\"td\");\n                  dom.setAttribute(el2,\"class\",\"left-align py1\");\n                  var el3 = dom.createComment(\"\");\n                  dom.appendChild(el2, el3);\n                  var el3 = dom.createTextNode(\" \");\n                  dom.appendChild(el2, el3);\n                  var el3 = dom.createComment(\"\");\n                  dom.appendChild(el2, el3);\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createElement(\"td\");\n                  dom.setAttribute(el2,\"class\",\"left-align py1\");\n                  var el3 = dom.createComment(\"\");\n                  dom.appendChild(el2, el3);\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createElement(\"td\");\n                  dom.setAttribute(el2,\"class\",\"left-align py1\");\n                  var el3 = dom.createComment(\"\");\n                  dom.appendChild(el2, el3);\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"\\n                \");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element0 = dom.childAt(fragment, [1]);\n                  var element1 = dom.childAt(element0, [1]);\n                  var morphs = new Array(4);\n                  morphs[0] = dom.createMorphAt(element1,0,0);\n                  morphs[1] = dom.createMorphAt(element1,2,2);\n                  morphs[2] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n                  morphs[3] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n                  return morphs;\n                },\n                statements: [\n                  [\"content\",\"employee.first_name\",[\"loc\",[null,[52,45],[52,68]]]],\n                  [\"content\",\"employee.last_name\",[\"loc\",[null,[52,69],[52,91]]]],\n                  [\"content\",\"employee.email\",[\"loc\",[null,[53,45],[53,63]]]],\n                  [\"content\",\"employee.phone_number\",[\"loc\",[null,[54,45],[54,70]]]]\n                ],\n                locals: [\"employee\"],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 56,\n                      \"column\": 16\n                    },\n                    \"end\": {\n                      \"line\": 60,\n                      \"column\": 14\n                    }\n                  },\n                  \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"tr\");\n                  var el2 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createElement(\"td\");\n                  var el3 = dom.createTextNode(\"No users matched your search.\");\n                  dom.appendChild(el2, el3);\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"\\n                \");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes() { return []; },\n                statements: [\n\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 41,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 62,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"h2\");\n                dom.setAttribute(el1,\"class\",\"left-align mt3 mb1 px2\");\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"table\");\n                dom.setAttribute(el1,\"class\",\"table-light js-csv-imported-list\");\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"tr\");\n                var el3 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createElement(\"th\");\n                var el4 = dom.createTextNode(\"Full Name\");\n                dom.appendChild(el3, el4);\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createElement(\"th\");\n                var el4 = dom.createTextNode(\"Email Address\");\n                dom.appendChild(el3, el4);\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createElement(\"th\");\n                var el4 = dom.createTextNode(\"Mobile Number\");\n                dom.appendChild(el3, el4);\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n\\n\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(2);\n                morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n                morphs[1] = dom.createMorphAt(dom.childAt(fragment, [3]),3,3);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"result.location\",[\"loc\",[null,[42,47],[42,66]]]],\n                [\"block\",\"each\",[[\"get\",\"result.results\",[\"loc\",[null,[50,22],[50,36]]]]],[],0,1,[\"loc\",[null,[50,14],[60,23]]]]\n              ],\n              locals: [\"result\"],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 24,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 64,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"p2 rounded bg-yellow-10 center border mt3 js-sync-list\");\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h4\");\n              var el3 = dom.createTextNode(\"Review your filtered list carefully\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"p\");\n              var el3 = dom.createTextNode(\"If you see any mistakes or wish to make changes, change your search parameters.\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"        \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element3 = dom.childAt(fragment, [1]);\n              var morphs = new Array(3);\n              morphs[0] = dom.createMorphAt(element3,5,5);\n              morphs[1] = dom.createMorphAt(element3,7,7);\n              morphs[2] = dom.createMorphAt(element3,9,9);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green\",\"default\",\"Save Filter and Sync\",\"pending\",\"Saving...\",\"fulfilled\",\"Saved\"],[\"loc\",[null,[28,10],[34,12]]]],\n              [\"block\",\"unless\",[[\"get\",\"neverSynced\",[\"loc\",[null,[35,20],[35,31]]]]],[],0,null,[\"loc\",[null,[35,10],[39,21]]]],\n              [\"block\",\"each\",[[\"get\",\"results\",[\"loc\",[null,[41,18],[41,25]]]]],[],1,null,[\"loc\",[null,[41,10],[62,19]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 66,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dd\");\n            dom.setAttribute(el1,\"class\",\"js-sync-per-location-options\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"form\");\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"Use the \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"a\");\n            dom.setAttribute(el4,\"href\",\"https://developers.google.com/admin-sdk/directory/v1/guides/search-users\");\n            dom.setAttribute(el4,\"target\",\"_blank\");\n            var el5 = dom.createTextNode(\" Google Directory API\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" to construct the filtering parameters you'd like to use.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1]);\n            var element5 = dom.childAt(element4, [1]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(element5,1,1);\n            morphs[1] = dom.createMorphAt(dom.childAt(element5, [5]),1,1);\n            morphs[2] = dom.createMorphAt(element4,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"each\",[[\"get\",\"locations\",[\"loc\",[null,[8,16],[8,25]]]]],[],0,null,[\"loc\",[null,[8,8],[10,17]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"test\",\"class\",\"btn btn--medium btn--blue\",\"default\",\"Test Filter\",\"pending\",\"Fetching results...\"],[\"loc\",[null,[15,10],[20,12]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"results\",[\"loc\",[null,[24,19],[24,26]]]]],[],1,null,[\"loc\",[null,[24,6],[64,20]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"multiple-nodes\",\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 67,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"dt\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"b\");\n          var el3 = dom.createTextNode(\"Sync specific employees per-location\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" (advanced)\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element6 = dom.childAt(fragment, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createAttrMorph(element6, 'class');\n          morphs[1] = dom.createElementMorph(element6);\n          morphs[2] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[2,17],[2,25]]]],\"active\"],[],[\"loc\",[null,[2,12],[2,36]]]]],\n          [\"element\",\"action\",[\"activate\"],[],[\"loc\",[null,[2,37],[2,58]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[5,15],[5,21]]]]],[],0,null,[\"loc\",[null,[5,2],[66,16]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 68,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/google-apps/locations-filter/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isVisible\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[67,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/google-apps/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 6,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 9,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"b\");\n          dom.setAttribute(el1,\"class\",\"red\");\n          var el2 = dom.createTextNode(\"Last Sync failed: \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"reason\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\".\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"btn btn--medium btn--green\");\n          var el2 = dom.createTextNode(\"Authenticate with Google\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"syncErrorMessage\",[\"loc\",[null,[7,62],[7,82]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 14,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--orange isSyncing\");\n            var el2 = dom.createTextNode(\"\\n            Syncing\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 15,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 20,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"b\");\n              var el2 = dom.createTextNode(\"Last Sync:\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\" \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"  \\n            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n              var el2 = dom.createTextNode(\"\\n              Sync now\\n            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [5]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createMorphAt(fragment,3,3,contextualElement);\n              morphs[1] = dom.createElementMorph(element0);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"fromNow\",[\"loc\",[null,[16,30],[16,41]]]],\n              [\"element\",\"action\",[\"sync\"],[],[\"loc\",[null,[17,48],[17,65]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 20,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 22,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"b\");\n              dom.setAttribute(el1,\"class\",\"green\");\n              var el2 = dom.createTextNode(\"Select one of the filters below before syncing.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 14,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 23,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"lastSyncAt\",[\"loc\",[null,[15,16],[15,26]]]]],[],0,1,[\"loc\",[null,[15,10],[22,17]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 24,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"company.synchronizing\",[\"loc\",[null,[10,14],[10,35]]]]],[],0,1,[\"loc\",[null,[10,8],[23,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 27,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 29,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Edit\",\"settings.integrations.enabled\",[\"subexpr\",\"query-params\",[],[\"integration\",\"googleApp\"],[\"loc\",[null,[28,57],[28,95]]]]],[\"class\",\"btn btn--small btn--outline\"],[\"loc\",[null,[28,8],[28,133]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 37,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 61,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          morphs[2] = dom.createMorphAt(fragment,5,5,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"sync-settings/google-apps/all-filter\",[],[\"googleApp\",[\"subexpr\",\"@mut\",[[\"get\",\"integrationData\",[\"loc\",[null,[39,14],[39,29]]]]],[],[]],\"filter\",[\"subexpr\",\"@mut\",[[\"get\",\"filter\",[\"loc\",[null,[40,11],[40,17]]]]],[],[]],\"company\",[\"subexpr\",\"@mut\",[[\"get\",\"company\",[\"loc\",[null,[41,12],[41,19]]]]],[],[]],\"showFlash\",[\"subexpr\",\"action\",[[\"get\",\"showFlash\",[\"loc\",[null,[42,22],[42,31]]]]],[],[\"loc\",[null,[42,14],[42,32]]]]],[\"loc\",[null,[38,4],[43,6]]]],\n          [\"inline\",\"sync-settings/google-apps/company-filter\",[],[\"googleApp\",[\"subexpr\",\"@mut\",[[\"get\",\"integrationData\",[\"loc\",[null,[45,14],[45,29]]]]],[],[]],\"filter\",[\"subexpr\",\"@mut\",[[\"get\",\"filter\",[\"loc\",[null,[46,11],[46,17]]]]],[],[]],\"company\",[\"subexpr\",\"@mut\",[[\"get\",\"company\",[\"loc\",[null,[47,12],[47,19]]]]],[],[]],\"handleFailedQuery\",[\"subexpr\",\"action\",[[\"get\",\"handleFailedQuery\",[\"loc\",[null,[48,30],[48,47]]]]],[],[\"loc\",[null,[48,22],[48,48]]]],\"hideFlash\",[\"subexpr\",\"action\",[[\"get\",\"hideFlash\",[\"loc\",[null,[49,22],[49,31]]]]],[],[\"loc\",[null,[49,14],[49,32]]]],\"showFlash\",[\"subexpr\",\"action\",[[\"get\",\"showFlash\",[\"loc\",[null,[50,22],[50,31]]]]],[],[\"loc\",[null,[50,14],[50,32]]]]],[\"loc\",[null,[44,4],[51,6]]]],\n          [\"inline\",\"sync-settings/google-apps/locations-filter\",[],[\"googleApp\",[\"subexpr\",\"@mut\",[[\"get\",\"integrationData\",[\"loc\",[null,[53,14],[53,29]]]]],[],[]],\"filter\",[\"subexpr\",\"@mut\",[[\"get\",\"filter\",[\"loc\",[null,[54,11],[54,17]]]]],[],[]],\"locations\",[\"subexpr\",\"@mut\",[[\"get\",\"locations.persisted\",[\"loc\",[null,[55,14],[55,33]]]]],[],[]],\"company\",[\"subexpr\",\"@mut\",[[\"get\",\"company\",[\"loc\",[null,[56,12],[56,19]]]]],[],[]],\"handleFailedQuery\",[\"subexpr\",\"action\",[[\"get\",\"handleFailedQuery\",[\"loc\",[null,[57,30],[57,47]]]]],[],[\"loc\",[null,[57,22],[57,48]]]],\"hideFlash\",[\"subexpr\",\"action\",[[\"get\",\"hideFlash\",[\"loc\",[null,[58,22],[58,31]]]]],[],[\"loc\",[null,[58,14],[58,32]]]],\"showFlash\",[\"subexpr\",\"action\",[[\"get\",\"showFlash\",[\"loc\",[null,[59,22],[59,31]]]]],[],[\"loc\",[null,[59,14],[59,32]]]]],[\"loc\",[null,[52,4],[60,6]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 62,\n            \"column\": 5\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/google-apps/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el1,\"class\",\"js-sync-settings-google\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"border rounded px2 py3 my2 center relative\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"img\");\n        dom.setAttribute(el3,\"src\",\"assets/images/integrations/googleapps-logo.png\");\n        dom.setAttribute(el3,\"style\",\"height:50px\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"mt3 mb0\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"style\",\"position:absolute;right:.5em;top:1em\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"h2\");\n        dom.setAttribute(el1,\"class\",\"mt4\");\n        var el2 = dom.createTextNode(\"Employee Sync Filter\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"dl\");\n        dom.setAttribute(el1,\"class\",\"accordion\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element1 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element1, [3]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element1, [5]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(fragment, [4]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isInvalid\",[\"loc\",[null,[6,12],[6,21]]]]],[],0,1,[\"loc\",[null,[6,6],[24,13]]]],\n        [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[27,33],[27,36]]]]],[],[]]],2,null,[\"loc\",[null,[27,6],[29,27]]]],\n        [\"block\",\"if\",[[\"get\",\"filter\",[\"loc\",[null,[37,8],[37,14]]]]],[],3,null,[\"loc\",[null,[37,2],[61,9]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/sync-settings/group-select/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    tagName: 'select',\n    classNames: ['mb0', 'js-group-select'],\n    change: function change(evt) {\n      this.attrs.value.update(evt.target.value);\n    }\n  });\n\n});","define('garaje/sync-settings/group-select/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 2,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/group-select/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"option\");\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createAttrMorph(element0, 'value');\n          morphs[1] = dom.createAttrMorph(element0, 'selected');\n          morphs[2] = dom.createMorphAt(element0,0,0);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"value\",[\"get\",\"group.group_id\",[\"loc\",[null,[3,18],[3,32]]]]],\n          [\"attribute\",\"selected\",[\"subexpr\",\"eq\",[[\"get\",\"value\",[\"loc\",[null,[3,49],[3,54]]]],[\"get\",\"group.group_id\",[\"loc\",[null,[3,55],[3,69]]]]],[],[\"loc\",[null,[3,44],[3,71]]]]],\n          [\"content\",\"group.name\",[\"loc\",[null,[3,72],[3,86]]]]\n        ],\n        locals: [\"group\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 5,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/group-select/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"option\");\n        var el2 = dom.createTextNode(\"Choose a group\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"groups\",[\"loc\",[null,[2,8],[2,14]]]]],[\"key\",\"@identity\"],0,null,[\"loc\",[null,[2,0],[4,9]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/locations-filter/component', ['exports', 'ember', 'garaje/utils/flash'], function (exports, Ember, flashMessage) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    locations: Ember['default'].inject.service(),\n    isVisible: Ember['default'].computed('locations.[]', {\n      get: function get() {\n        return this.get('locations.length') > 1;\n      }\n    }).readOnly(),\n    syncManager: Ember['default'].inject.service(),\n\n    isActive: Ember['default'].computed.equal('integration.filterType', 'locations'),\n    isOpen: Ember['default'].computed.alias('isActive'),\n    neverSynced: Ember['default'].computed.empty('company.employeesLastSyncAt'),\n\n    setFilter: function setFilter() {\n      return this.get('integration').save();\n    },\n    setPreviewResults: function setPreviewResults(users) {\n      var results = this.get('locations').map(function (location) {\n        var locationId = parseInt(location.id);\n\n        return {\n          location: location,\n          results: users.filter(function (user) {\n            return user.locations.indexOf(locationId) >= 0;\n          })\n        };\n      });\n\n      this.set('results', results);\n    },\n    actions: {\n      activate: function activate() {\n        this.set('results', []);\n        if (!this.get('isActive')) {\n          this.set('integration.filterType', 'locations');\n\n          var attrs = this.get('integration').changedAttributes();\n          if (this.get('integration.hasDirtyAttributes') && !attrs.filterType) {\n            this.get('integration').rollbackAttributes();\n          } else {\n            this.set('integration.filters', []);\n          }\n        }\n      },\n      save: function save(callback) {\n        var _this = this;\n\n        var promise = this.setFilter().then(function () {\n          _this.set('results', []);\n          flashMessage['default'].call(_this, 'success', 'Saved!');\n        });\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      test: function test(callback) {\n        var _this2 = this;\n\n        this.attrs.hideFlash();\n        this.set('results', []);\n\n        var promise = undefined;\n        if (!this.get('integration.filters.length')) {\n          flashMessage['default'].call(this, 'error', 'Enable at least 1 filter for any location, otherwise use the sync all filter');\n\n          promise = Ember['default'].RSVP.resolve(false);\n        } else {\n          promise = this.attrs.preview(this.get('integration')).then(function (users) {\n            _this2.setPreviewResults(users);\n          }, function (response) {\n            _this2.attrs.handleFailedQuery(response);\n          });\n        }\n\n        if (callback) {\n          callback(promise);\n        }\n      },\n      cancel: function cancel() {\n        this.get('integration').rollbackAttributes();\n        this.set('results', []);\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/locations-filter/location-filter/component', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend({\n    filters: Ember['default'].computed('integration.filters.[]', {\n      get: function get() {\n        return this.get('integration.locationFilters').filterBy('locationId', parseInt(this.get('location.id')));\n      }\n    }).readOnly(),\n    availableFilters: Ember['default'].computed('filters.[]', 'filterOptions.[]', {\n      get: function get() {\n        var filters = this.get('filters').mapBy('name');\n\n        return this.get('filterOptions').reject(function (filter) {\n          return filters.indexOf(filter.name) >= 0;\n        });\n      }\n    }).readOnly(),\n\n    filterOperations: [{\n      name: 'equals',\n      value: '='\n    }, {\n      name: 'contains',\n      value: '=~'\n    }],\n\n    actions: {\n      addFilter: function addFilter(evt) {\n        evt.stopPropagation();\n\n        var target = evt.target;\n        var filterName = target.value;\n        var filter = this.get('availableFilters').findBy('name', filterName);\n        this.attrs.addFilter(filter, parseInt(this.get('location.id')));\n\n        target.selectedIndex = 0;\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/locations-filter/location-filter/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 19,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 21,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/locations-filter/location-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"sync-settings/group-select\",[],[\"groups\",[\"subexpr\",\"@mut\",[[\"get\",\"directoryGroups\",[\"loc\",[null,[20,48],[20,63]]]]],[],[]],\"value\",[\"subexpr\",\"mut\",[[\"get\",\"filter.value\",[\"loc\",[null,[20,75],[20,87]]]]],[],[\"loc\",[null,[20,70],[20,88]]]]],[\"loc\",[null,[20,12],[20,90]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 21,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 23,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/locations-filter/location-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"input\",[],[\"id\",[\"subexpr\",\"concat\",[\"location-\",[\"get\",\"location.id\",[\"loc\",[null,[22,43],[22,54]]]],\"-\",[\"get\",\"filter.name\",[\"loc\",[null,[22,59],[22,70]]]]],[],[\"loc\",[null,[22,23],[22,71]]]],\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"filter.value\",[\"loc\",[null,[22,78],[22,90]]]]],[],[]],\"placeholder\",\"Value\",\"autofocus\",true,\"class\",\"mb0\"],[\"loc\",[null,[22,12],[22,139]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 29,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/locations-filter/location-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"tr\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"p0\");\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"p0 center\");\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"p0\");\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"p0 center\");\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"style\",\"font-size:26px;cursor:pointer;line-height:30px\");\n          var el4 = dom.createTextNode(\"×\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var element3 = dom.childAt(element2, [7, 1]);\n          var morphs = new Array(4);\n          morphs[0] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n          morphs[1] = dom.createMorphAt(dom.childAt(element2, [3]),1,1);\n          morphs[2] = dom.createMorphAt(dom.childAt(element2, [5]),1,1);\n          morphs[3] = dom.createElementMorph(element3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"filter.label\",[\"loc\",[null,[7,24],[7,36]]]]],[],[]],\"disabled\",true,\"class\",\"mb0\"],[\"loc\",[null,[7,10],[7,64]]]],\n          [\"inline\",\"x-select-blockless\",[],[\"id\",[\"subexpr\",\"concat\",[\"js-op-location-\",[\"get\",\"location.id\",[\"loc\",[null,[11,40],[11,51]]]],\"-\",[\"get\",\"filter.name\",[\"loc\",[null,[11,56],[11,67]]]]],[],[\"loc\",[null,[11,13],[11,68]]]],\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"filterOperations\",[\"loc\",[null,[12,18],[12,34]]]]],[],[]],\"value\",[\"subexpr\",\"mut\",[[\"get\",\"filter.operation\",[\"loc\",[null,[13,21],[13,37]]]]],[],[\"loc\",[null,[13,16],[13,38]]]],\"optionValuePath\",\"content.value\",\"optionLabelPath\",\"content.name\"],[\"loc\",[null,[10,10],[16,12]]]],\n          [\"block\",\"if\",[[\"subexpr\",\"eq\",[[\"get\",\"filter.name\",[\"loc\",[null,[19,20],[19,31]]]],\"_okta_group\"],[],[\"loc\",[null,[19,16],[19,46]]]]],[],0,1,[\"loc\",[null,[19,10],[23,17]]]],\n          [\"element\",\"action\",[[\"get\",\"removeFilter\",[\"loc\",[null,[26,80],[26,92]]]],[\"get\",\"filter\",[\"loc\",[null,[26,93],[26,99]]]]],[],[\"loc\",[null,[26,71],[26,101]]]]\n        ],\n        locals: [\"filter\"],\n        templates: [child0, child1]\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 29,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 31,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/locations-filter/location-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          var el2 = dom.createTextNode(\"Syncing all users\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 37,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 39,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/locations-filter/location-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"option\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createAttrMorph(element0, 'value');\n            morphs[1] = dom.createMorphAt(element0,0,0);\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"value\",[\"get\",\"filter.name\",[\"loc\",[null,[38,24],[38,35]]]]],\n            [\"content\",\"filter.label\",[\"loc\",[null,[38,38],[38,54]]]]\n          ],\n          locals: [\"filter\"],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 34,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 41,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/locations-filter/location-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"select\");\n          dom.setAttribute(el1,\"style\",\"width:auto;padding-right:30px;\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"option\");\n          dom.setAttribute(el2,\"disabled\",\"\");\n          var el3 = dom.createTextNode(\"Add filter\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createAttrMorph(element1, 'name');\n          morphs[1] = dom.createAttrMorph(element1, 'onchange');\n          morphs[2] = dom.createMorphAt(element1,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"name\",[\"concat\",[\"location-\",[\"get\",\"location.id\",[\"loc\",[null,[35,29],[35,40]]]],\"-options\"]]],\n          [\"attribute\",\"onchange\",[\"subexpr\",\"action\",[\"addFilter\"],[],[\"loc\",[null,[35,61],[35,83]]]]],\n          [\"block\",\"each\",[[\"get\",\"availableFilters\",[\"loc\",[null,[37,14],[37,30]]]]],[\"key\",\"@identity\"],0,null,[\"loc\",[null,[37,6],[39,15]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 43,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/locations-filter/location-filter/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"mb3\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h4\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"table\");\n        dom.setAttribute(el2,\"class\",\"mt2 mb1\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element4 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element4, [1]),0,0);\n        morphs[1] = dom.createMorphAt(dom.childAt(element4, [3]),1,1);\n        morphs[2] = dom.createMorphAt(element4,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"location.nameWithCompanyName\",[\"loc\",[null,[2,6],[2,38]]]],\n        [\"block\",\"each\",[[\"get\",\"filters\",[\"loc\",[null,[4,12],[4,19]]]]],[],0,1,[\"loc\",[null,[4,4],[31,13]]]],\n        [\"block\",\"if\",[[\"get\",\"availableFilters\",[\"loc\",[null,[34,8],[34,24]]]]],[],2,null,[\"loc\",[null,[34,2],[41,9]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/sync-settings/locations-filter/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 7,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 9,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"h3\");\n              var el2 = dom.createTextNode(\"It looks like you don't have custom user fields to filter by. Please go your identity provider and define some.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 11,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 20,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"sync-settings/locations-filter/location-filter\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"location\",[\"loc\",[null,[13,21],[13,29]]]]],[],[]],\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integration\",[\"loc\",[null,[14,24],[14,35]]]]],[],[]],\"filterOptions\",[\"subexpr\",\"@mut\",[[\"get\",\"filterOptions\",[\"loc\",[null,[15,26],[15,39]]]]],[],[]],\"addFilter\",[\"subexpr\",\"action\",[[\"get\",\"addFilter\",[\"loc\",[null,[16,30],[16,39]]]]],[],[\"loc\",[null,[16,22],[16,40]]]],\"removeFilter\",[\"subexpr\",\"action\",[[\"get\",\"removeFilter\",[\"loc\",[null,[17,33],[17,45]]]]],[],[\"loc\",[null,[17,25],[17,46]]]],\"directoryGroups\",[\"subexpr\",\"@mut\",[[\"get\",\"directoryGroups\",[\"loc\",[null,[18,28],[18,43]]]]],[],[]]],[\"loc\",[null,[12,12],[19,14]]]]\n              ],\n              locals: [\"location\"],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 21,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 30,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"p\");\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"test\",\"class\",\"btn btn--medium btn--blue\",\"default\",\"Test Filter\",\"pending\",\"Fetching results...\"],[\"loc\",[null,[23,14],[28,16]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child2 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 31,\n                      \"column\": 12\n                    },\n                    \"end\": {\n                      \"line\": 43,\n                      \"column\": 12\n                    }\n                  },\n                  \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"              \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"p\");\n                  var el2 = dom.createTextNode(\"\\n                \");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createComment(\"\");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"\\n                \");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createElement(\"button\");\n                  dom.setAttribute(el2,\"class\",\"btn btn--medium btn--redHoverFill\");\n                  var el3 = dom.createTextNode(\"\\n                  Cancel\\n                \");\n                  dom.appendChild(el2, el3);\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"\\n              \");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element3 = dom.childAt(fragment, [1]);\n                  var element4 = dom.childAt(element3, [3]);\n                  var morphs = new Array(2);\n                  morphs[0] = dom.createMorphAt(element3,1,1);\n                  morphs[1] = dom.createElementMorph(element4);\n                  return morphs;\n                },\n                statements: [\n                  [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green btn--medium\",\"default\",\"Save Filter\",\"pending\",\"Saving...\"],[\"loc\",[null,[33,16],[38,18]]]],\n                  [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[39,66],[39,85]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 30,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 44,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"liquid-if\",[[\"get\",\"integration.hasDirtyAttributes\",[\"loc\",[null,[31,25],[31,55]]]]],[],0,null,[\"loc\",[null,[31,12],[43,26]]]]\n              ],\n              locals: [],\n              templates: [child0]\n            };\n          }());\n          var child3 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 58,\n                      \"column\": 12\n                    },\n                    \"end\": {\n                      \"line\": 62,\n                      \"column\": 12\n                    }\n                  },\n                  \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"              \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"button\");\n                  dom.setAttribute(el1,\"class\",\"btn btn--medium btn--redHoverFill\");\n                  var el2 = dom.createTextNode(\"\\n                Cancel\\n              \");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element1 = dom.childAt(fragment, [1]);\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createElementMorph(element1);\n                  return morphs;\n                },\n                statements: [\n                  [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[59,64],[59,83]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              var child0 = (function() {\n                return {\n                  meta: {\n                    \"fragmentReason\": false,\n                    \"revision\": \"Ember@2.2.0-beta.1\",\n                    \"loc\": {\n                      \"source\": null,\n                      \"start\": {\n                        \"line\": 73,\n                        \"column\": 16\n                      },\n                      \"end\": {\n                        \"line\": 79,\n                        \"column\": 18\n                      }\n                    },\n                    \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n                  },\n                  isEmpty: false,\n                  arity: 1,\n                  cachedFragment: null,\n                  hasRendered: false,\n                  buildFragment: function buildFragment(dom) {\n                    var el0 = dom.createDocumentFragment();\n                    var el1 = dom.createTextNode(\"                  \");\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createElement(\"tr\");\n                    var el2 = dom.createTextNode(\"\\n                    \");\n                    dom.appendChild(el1, el2);\n                    var el2 = dom.createElement(\"td\");\n                    dom.setAttribute(el2,\"class\",\"left-align py1\");\n                    var el3 = dom.createComment(\"\");\n                    dom.appendChild(el2, el3);\n                    dom.appendChild(el1, el2);\n                    var el2 = dom.createTextNode(\"\\n                    \");\n                    dom.appendChild(el1, el2);\n                    var el2 = dom.createElement(\"td\");\n                    dom.setAttribute(el2,\"class\",\"left-align py1\");\n                    var el3 = dom.createComment(\"\");\n                    dom.appendChild(el2, el3);\n                    dom.appendChild(el1, el2);\n                    var el2 = dom.createTextNode(\"\\n                    \");\n                    dom.appendChild(el1, el2);\n                    var el2 = dom.createElement(\"td\");\n                    dom.setAttribute(el2,\"class\",\"left-align py1\");\n                    var el3 = dom.createComment(\"\");\n                    dom.appendChild(el2, el3);\n                    dom.appendChild(el1, el2);\n                    var el2 = dom.createTextNode(\"\\n                  \");\n                    dom.appendChild(el1, el2);\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createTextNode(\"\\n\");\n                    dom.appendChild(el0, el1);\n                    return el0;\n                  },\n                  buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                    var element0 = dom.childAt(fragment, [1]);\n                    var morphs = new Array(3);\n                    morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n                    morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n                    morphs[2] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n                    return morphs;\n                  },\n                  statements: [\n                    [\"content\",\"employee.name\",[\"loc\",[null,[75,47],[75,64]]]],\n                    [\"content\",\"employee.email\",[\"loc\",[null,[76,47],[76,65]]]],\n                    [\"content\",\"employee.phone_number\",[\"loc\",[null,[77,47],[77,72]]]]\n                  ],\n                  locals: [\"employee\"],\n                  templates: []\n                };\n              }());\n              var child1 = (function() {\n                return {\n                  meta: {\n                    \"fragmentReason\": false,\n                    \"revision\": \"Ember@2.2.0-beta.1\",\n                    \"loc\": {\n                      \"source\": null,\n                      \"start\": {\n                        \"line\": 79,\n                        \"column\": 18\n                      },\n                      \"end\": {\n                        \"line\": 83,\n                        \"column\": 16\n                      }\n                    },\n                    \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n                  },\n                  isEmpty: false,\n                  arity: 0,\n                  cachedFragment: null,\n                  hasRendered: false,\n                  buildFragment: function buildFragment(dom) {\n                    var el0 = dom.createDocumentFragment();\n                    var el1 = dom.createTextNode(\"                  \");\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createElement(\"tr\");\n                    var el2 = dom.createTextNode(\"\\n                    \");\n                    dom.appendChild(el1, el2);\n                    var el2 = dom.createElement(\"td\");\n                    var el3 = dom.createTextNode(\"No employees matched your search.\");\n                    dom.appendChild(el2, el3);\n                    dom.appendChild(el1, el2);\n                    var el2 = dom.createTextNode(\"\\n                  \");\n                    dom.appendChild(el1, el2);\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createTextNode(\"\\n\");\n                    dom.appendChild(el0, el1);\n                    return el0;\n                  },\n                  buildRenderNodes: function buildRenderNodes() { return []; },\n                  statements: [\n\n                  ],\n                  locals: [],\n                  templates: []\n                };\n              }());\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 64,\n                      \"column\": 12\n                    },\n                    \"end\": {\n                      \"line\": 85,\n                      \"column\": 12\n                    }\n                  },\n                  \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n                },\n                isEmpty: false,\n                arity: 1,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"              \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"h2\");\n                  dom.setAttribute(el1,\"class\",\"left-align mt3 mb1 px2\");\n                  var el2 = dom.createComment(\"\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n              \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"table\");\n                  dom.setAttribute(el1,\"class\",\"table-light js-csv-imported-list\");\n                  var el2 = dom.createTextNode(\"\\n                \");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createElement(\"tr\");\n                  var el3 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el2, el3);\n                  var el3 = dom.createElement(\"th\");\n                  var el4 = dom.createTextNode(\"Full Name\");\n                  dom.appendChild(el3, el4);\n                  dom.appendChild(el2, el3);\n                  var el3 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el2, el3);\n                  var el3 = dom.createElement(\"th\");\n                  var el4 = dom.createTextNode(\"Email Address\");\n                  dom.appendChild(el3, el4);\n                  dom.appendChild(el2, el3);\n                  var el3 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el2, el3);\n                  var el3 = dom.createElement(\"th\");\n                  var el4 = dom.createTextNode(\"Phone Number\");\n                  dom.appendChild(el3, el4);\n                  dom.appendChild(el2, el3);\n                  var el3 = dom.createTextNode(\"\\n                \");\n                  dom.appendChild(el2, el3);\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"\\n\\n\");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createComment(\"\");\n                  dom.appendChild(el1, el2);\n                  var el2 = dom.createTextNode(\"              \");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var morphs = new Array(2);\n                  morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n                  morphs[1] = dom.createMorphAt(dom.childAt(fragment, [3]),3,3);\n                  return morphs;\n                },\n                statements: [\n                  [\"content\",\"result.location.nameWithCompanyName\",[\"loc\",[null,[65,49],[65,88]]]],\n                  [\"block\",\"each\",[[\"get\",\"result.results\",[\"loc\",[null,[73,24],[73,38]]]]],[],0,1,[\"loc\",[null,[73,16],[83,25]]]]\n                ],\n                locals: [\"result\"],\n                templates: [child0, child1]\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 47,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 87,\n                    \"column\": 8\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"          \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"div\");\n                dom.setAttribute(el1,\"class\",\"p2 rounded bg-yellow-10 center border mt3 js-sync-list\");\n                var el2 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"h4\");\n                var el3 = dom.createTextNode(\"Example active users that match filters.\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"p\");\n                var el3 = dom.createTextNode(\"If you'd like to make changes, edit the filters or search parameters above before saving.\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n            \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"          \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element2 = dom.childAt(fragment, [1]);\n                var morphs = new Array(3);\n                morphs[0] = dom.createMorphAt(element2,5,5);\n                morphs[1] = dom.createMorphAt(element2,7,7);\n                morphs[2] = dom.createMorphAt(element2,9,9);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green btn--medium\",\"default\",\"Save Filter and Sync\",\"pending\",\"Saving...\",\"fulfilled\",\"Saved\"],[\"loc\",[null,[51,12],[57,14]]]],\n                [\"block\",\"unless\",[[\"get\",\"neverSynced\",[\"loc\",[null,[58,22],[58,33]]]]],[],0,null,[\"loc\",[null,[58,12],[62,23]]]],\n                [\"block\",\"each\",[[\"get\",\"results\",[\"loc\",[null,[64,20],[64,27]]]]],[],1,null,[\"loc\",[null,[64,12],[85,21]]]]\n              ],\n              locals: [],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 9,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 88,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"form\");\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"        \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element5 = dom.childAt(fragment, [1]);\n              var morphs = new Array(3);\n              morphs[0] = dom.createMorphAt(element5,1,1);\n              morphs[1] = dom.createMorphAt(element5,2,2);\n              morphs[2] = dom.createMorphAt(fragment,3,3,contextualElement);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"each\",[[\"get\",\"locations\",[\"loc\",[null,[11,18],[11,27]]]]],[],0,null,[\"loc\",[null,[11,10],[20,19]]]],\n              [\"block\",\"if\",[[\"get\",\"previewEnabled\",[\"loc\",[null,[21,16],[21,30]]]]],[],1,2,[\"loc\",[null,[21,10],[44,17]]]],\n              [\"block\",\"liquid-if\",[[\"get\",\"results\",[\"loc\",[null,[47,21],[47,28]]]]],[],3,null,[\"loc\",[null,[47,8],[87,22]]]]\n            ],\n            locals: [],\n            templates: [child0, child1, child2, child3]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 90,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dd\");\n            dom.setAttribute(el1,\"class\",\"js-sync-per-location-options\");\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"unless\",[[\"get\",\"filterOptions\",[\"loc\",[null,[7,16],[7,29]]]]],[],0,1,[\"loc\",[null,[7,6],[88,17]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"multiple-nodes\",\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 91,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"dt\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"b\");\n          var el3 = dom.createTextNode(\"Sync specific employees per-location\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" (advanced)\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element6 = dom.childAt(fragment, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createAttrMorph(element6, 'class');\n          morphs[1] = dom.createElementMorph(element6);\n          morphs[2] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[2,17],[2,25]]]],\"active\"],[],[\"loc\",[null,[2,12],[2,36]]]]],\n          [\"element\",\"action\",[\"activate\"],[],[\"loc\",[null,[2,37],[2,58]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"isOpen\",[\"loc\",[null,[5,15],[5,21]]]]],[],0,null,[\"loc\",[null,[5,2],[90,16]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 92,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/locations-filter/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isVisible\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[91,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/okta-integration/all-filter/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 29,\n                    \"column\": 10\n                  },\n                  \"end\": {\n                    \"line\": 33,\n                    \"column\": 10\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/okta-integration/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"            \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"button\");\n                dom.setAttribute(el1,\"class\",\"btn btn--medium btn--redHoverOutline\");\n                var el2 = dom.createTextNode(\"\\n              Cancel\\n            \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element2 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element2);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"cancel\"],[],[\"loc\",[null,[30,65],[30,84]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 43,\n                    \"column\": 12\n                  },\n                  \"end\": {\n                    \"line\": 49,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/okta-integration/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"tr\");\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createTextNode(\" \");\n                dom.appendChild(el2, el3);\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                dom.setAttribute(el2,\"class\",\"left-align py1\");\n                var el3 = dom.createComment(\"\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element0 = dom.childAt(fragment, [1]);\n                var element1 = dom.childAt(element0, [1]);\n                var morphs = new Array(4);\n                morphs[0] = dom.createMorphAt(element1,0,0);\n                morphs[1] = dom.createMorphAt(element1,2,2);\n                morphs[2] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n                morphs[3] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"employee.first_name\",[\"loc\",[null,[45,43],[45,66]]]],\n                [\"content\",\"employee.last_name\",[\"loc\",[null,[45,67],[45,89]]]],\n                [\"content\",\"employee.email\",[\"loc\",[null,[46,43],[46,61]]]],\n                [\"content\",\"employee.phone_number\",[\"loc\",[null,[47,43],[47,68]]]]\n              ],\n              locals: [\"employee\"],\n              templates: []\n            };\n          }());\n          var child2 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 49,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 53,\n                    \"column\": 12\n                  }\n                },\n                \"moduleName\": \"garaje/sync-settings/okta-integration/all-filter/template.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"              \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"tr\");\n                var el2 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createElement(\"td\");\n                var el3 = dom.createTextNode(\"No users matched your search.\");\n                dom.appendChild(el2, el3);\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\"\\n              \");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 19,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 56,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/okta-integration/all-filter/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"p2 rounded bg-yellow-10 center border mt3 js-sync-list\");\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h4\");\n              dom.setAttribute(el2,\"class\",\"mb2\");\n              var el3 = dom.createTextNode(\"Review your list\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h2\");\n              dom.setAttribute(el2,\"class\",\"left-align mt3 mb1 px2\");\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\" (All Locations)\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"table\");\n              dom.setAttribute(el2,\"class\",\"table-light js-csv-imported-list\");\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"tr\");\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Full Name\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Email Address\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"th\");\n              var el5 = dom.createTextNode(\"Phone Number\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"          \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n        \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element3 = dom.childAt(fragment, [1]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createMorphAt(element3,3,3);\n              morphs[1] = dom.createMorphAt(element3,5,5);\n              morphs[2] = dom.createMorphAt(dom.childAt(element3, [7]),0,0);\n              morphs[3] = dom.createMorphAt(dom.childAt(element3, [9]),3,3);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--green\",\"default\",\"Save Filter and Sync\",\"pending\",\"Saving...\",\"fulfilled\",\"Saved\"],[\"loc\",[null,[22,10],[28,12]]]],\n              [\"block\",\"unless\",[[\"get\",\"neverSynced\",[\"loc\",[null,[29,20],[29,31]]]]],[],0,null,[\"loc\",[null,[29,10],[33,21]]]],\n              [\"content\",\"company.name\",[\"loc\",[null,[35,45],[35,61]]]],\n              [\"block\",\"each\",[[\"get\",\"search.results\",[\"loc\",[null,[43,20],[43,34]]]]],[],1,2,[\"loc\",[null,[43,12],[53,21]]]]\n            ],\n            locals: [],\n            templates: [child0, child1, child2]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 6,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 59,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/okta-integration/all-filter/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"dd\");\n            dom.setAttribute(el1,\"class\",\"js-sync-company-wide-options\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"form\");\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"This will synchronize \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"b\");\n            var el5 = dom.createTextNode(\"all active users\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" from your Okta directory.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element4, [1, 3]),1,1);\n            morphs[1] = dom.createMorphAt(element4,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"async-button\",[],[\"action\",\"test\",\"class\",\"btn btn--medium btn--blue\",\"default\",\"Test\",\"pending\",\"Fetching results...\"],[\"loc\",[null,[11,10],[16,12]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"search\",[\"loc\",[null,[19,19],[19,25]]]]],[],0,null,[\"loc\",[null,[19,6],[56,20]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 60,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/okta-integration/all-filter/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-if\",[[\"get\",\"isDirty\",[\"loc\",[null,[6,15],[6,22]]]]],[],0,null,[\"loc\",[null,[6,2],[59,16]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 61,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/okta-integration/all-filter/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"dt\");\n        dom.setAttribute(el1,\"class\",\"active\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"b\");\n        var el3 = dom.createTextNode(\"Syncing all employees\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isActive\",[\"loc\",[null,[5,6],[5,14]]]]],[],0,null,[\"loc\",[null,[5,0],[60,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/sync-settings/okta-integration/component', ['exports', 'ember', 'garaje/mixins/sync-settings/object', 'garaje/utils/url-builder'], function (exports, Ember, SyncSettingsObject, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(SyncSettingsObject['default'], {\n    ajax: Ember['default'].inject.service(),\n    request: Ember['default'].computed({\n      get: function get() {\n        return this.get('ajax').request;\n      }\n    }).volatile(),\n\n    integrationData: Ember['default'].computed.alias('company.oktaIntegration'),\n    filterComponents: ['sync-settings/all-filter', 'sync-settings/company-filter', 'sync-settings/locations-filter'],\n    syncManager: Ember['default'].inject.service(),\n    integrationManager: Ember['default'].inject.service(),\n    actions: {\n      preview: function preview(integration) {\n        var _this = this;\n\n        var payload = {\n          data: {\n            type: integration.get('filterType'),\n            data: integration.get('filters').serialize()\n          }\n        };\n\n        var url = urlBuilder['default'].v2.integrations.oktaUsersUrl(integration.id);\n\n        return this.get('ajax').request(url, {\n          type: 'POST',\n          data: JSON.stringify(payload),\n          contentType: 'application/json'\n        }).then(function () {\n          return new Ember['default'].RSVP.Promise(function (resolve) {\n            _this.get('syncManager').one('okta#preview_completed', function (users) {\n              resolve(users);\n            });\n          });\n        });\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/okta-integration/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 8,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"b\");\n          dom.setAttribute(el1,\"class\",\"red\");\n          var el2 = dom.createTextNode(\"Last Sync failed: \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"h5\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\".\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"btn btn--medium btn--green\");\n          var el2 = dom.createTextNode(\"Check your Okta token\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"syncErrorMessage\",[\"loc\",[null,[6,58],[6,78]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 9,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 13,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--orange isSyncing\");\n            var el2 = dom.createTextNode(\"\\n            Syncing\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 14,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 19,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"b\");\n              var el2 = dom.createTextNode(\"Last Sync:\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\" \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"  \\n            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n              var el2 = dom.createTextNode(\"\\n              Sync now\\n            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [5]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createMorphAt(fragment,3,3,contextualElement);\n              morphs[1] = dom.createElementMorph(element0);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"fromNow\",[\"loc\",[null,[15,30],[15,41]]]],\n              [\"element\",\"action\",[\"sync\"],[],[\"loc\",[null,[16,48],[16,65]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 19,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 21,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              dom.setAttribute(el1,\"class\",\"green\");\n              var el2 = dom.createTextNode(\"Test your setup below before syncing.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 22,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"lastSyncAt\",[\"loc\",[null,[14,16],[14,26]]]]],[],0,1,[\"loc\",[null,[14,10],[21,17]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 8,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 23,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"company.synchronizing\",[\"loc\",[null,[9,14],[9,35]]]]],[],0,1,[\"loc\",[null,[9,8],[22,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 26,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 28,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Edit\",\"settings.integrations.enabled\",[\"subexpr\",\"query-params\",[],[\"integration\",\"okta\"],[\"loc\",[null,[27,57],[27,90]]]]],[\"class\",\"btn btn--small btn--outline\"],[\"loc\",[null,[27,8],[27,128]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 36,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 52,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"component\",[[\"get\",\"filterComponent\",[\"loc\",[null,[37,16],[37,31]]]]],[\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integrationData.content\",[\"loc\",[null,[38,16],[38,39]]]]],[],[]],\"filterOptions\",[\"subexpr\",\"@mut\",[[\"get\",\"filterOptions\",[\"loc\",[null,[39,18],[39,31]]]]],[],[]],\"directoryGroups\",[\"subexpr\",\"@mut\",[[\"get\",\"directoryGroups\",[\"loc\",[null,[40,20],[40,35]]]]],[],[]],\"locations\",[\"subexpr\",\"@mut\",[[\"get\",\"locations.persisted\",[\"loc\",[null,[41,14],[41,33]]]]],[],[]],\"company\",[\"subexpr\",\"@mut\",[[\"get\",\"company\",[\"loc\",[null,[42,12],[42,19]]]]],[],[]],\"save\",[\"subexpr\",\"action\",[\"sync\"],[],[\"loc\",[null,[43,9],[43,24]]]],\"handleFailedQuery\",[\"subexpr\",\"action\",[[\"get\",\"handleFailedQuery\",[\"loc\",[null,[44,30],[44,47]]]]],[],[\"loc\",[null,[44,22],[44,48]]]],\"hideFlash\",[\"subexpr\",\"action\",[[\"get\",\"hideFlash\",[\"loc\",[null,[45,22],[45,31]]]]],[],[\"loc\",[null,[45,14],[45,32]]]],\"showFlash\",[\"subexpr\",\"action\",[[\"get\",\"showFlash\",[\"loc\",[null,[46,22],[46,31]]]]],[],[\"loc\",[null,[46,14],[46,32]]]],\"addFilter\",[\"subexpr\",\"action\",[[\"get\",\"addFilter\",[\"loc\",[null,[47,22],[47,31]]]],[\"get\",\"integrationData\",[\"loc\",[null,[47,32],[47,47]]]]],[],[\"loc\",[null,[47,14],[47,48]]]],\"removeFilter\",[\"subexpr\",\"action\",[[\"get\",\"removeFilter\",[\"loc\",[null,[48,25],[48,37]]]],[\"get\",\"integrationData\",[\"loc\",[null,[48,38],[48,53]]]]],[],[\"loc\",[null,[48,17],[48,54]]]],\"preview\",[\"subexpr\",\"action\",[\"preview\"],[],[\"loc\",[null,[49,12],[49,30]]]],\"previewEnabled\",true],[\"loc\",[null,[37,4],[51,6]]]]\n        ],\n        locals: [\"filterComponent\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 53,\n            \"column\": 5\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/okta-integration/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el1,\"class\",\"js-sync-settings-okta\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"border rounded px2 py3 my2 center relative\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"img\");\n        dom.setAttribute(el3,\"src\",\"assets/images/integrations/okta-logo.png\");\n        dom.setAttribute(el3,\"style\",\"height:50px\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"mt3 mb0\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"style\",\"position:absolute;right:.5em;top:1em\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"h2\");\n        dom.setAttribute(el1,\"class\",\"mt4\");\n        var el2 = dom.createTextNode(\"Employee Sync Filter\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"dl\");\n        dom.setAttribute(el1,\"class\",\"accordion\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element1 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element1, [3]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element1, [5]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(fragment, [4]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isInvalid\",[\"loc\",[null,[5,12],[5,21]]]]],[],0,1,[\"loc\",[null,[5,6],[23,13]]]],\n        [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[26,33],[26,36]]]]],[],[]]],2,null,[\"loc\",[null,[26,6],[28,27]]]],\n        [\"block\",\"each\",[[\"get\",\"filterComponents\",[\"loc\",[null,[36,10],[36,26]]]]],[],3,null,[\"loc\",[null,[36,2],[52,11]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/sync-settings/one-login/component', ['exports', 'ember', 'garaje/mixins/sync-settings/object'], function (exports, Ember, SyncSettingsObject) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Component.extend(SyncSettingsObject['default'], {\n    integrationData: Ember['default'].computed.alias('company.oneLogin'),\n    filterComponents: ['sync-settings/all-filter', 'sync-settings/company-filter', 'sync-settings/locations-filter']\n  });\n\n});","define('garaje/sync-settings/one-login/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 6,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 9,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"b\");\n          dom.setAttribute(el1,\"class\",\"red\");\n          var el2 = dom.createTextNode(\"Last Sync failed: \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"reason\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\".\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"br\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"br\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"btn btn--medium btn--green\");\n          var el2 = dom.createTextNode(\"Check your OneLogin API key\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"syncErrorMessage\",[\"loc\",[null,[7,62],[7,82]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 14,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--small btn--orange isSyncing\");\n            var el2 = dom.createTextNode(\"\\n            Syncing\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 15,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 20,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"b\");\n              var el2 = dom.createTextNode(\"Last Sync:\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\" \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"  \\n            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n              var el2 = dom.createTextNode(\"\\n              Sync now\\n            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [5]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createMorphAt(fragment,3,3,contextualElement);\n              morphs[1] = dom.createElementMorph(element0);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"fromNow\",[\"loc\",[null,[16,30],[16,41]]]],\n              [\"element\",\"action\",[\"sync\"],[],[\"loc\",[null,[17,48],[17,65]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 20,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 22,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              dom.setAttribute(el1,\"class\",\"green\");\n              var el2 = dom.createTextNode(\"Select a filter below before syncing.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 14,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 23,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"lastSyncAt\",[\"loc\",[null,[15,16],[15,26]]]]],[],0,1,[\"loc\",[null,[15,10],[22,17]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 24,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"company.synchronizing\",[\"loc\",[null,[10,14],[10,35]]]]],[],0,1,[\"loc\",[null,[10,8],[23,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 27,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 29,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Edit\",\"settings.integrations.enabled\",[\"subexpr\",\"query-params\",[],[\"integration\",\"one-login\"],[\"loc\",[null,[28,57],[28,95]]]]],[\"class\",\"btn btn--small btn--outline\"],[\"loc\",[null,[28,8],[28,133]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 37,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 50,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"component\",[[\"get\",\"filterComponent\",[\"loc\",[null,[38,16],[38,31]]]]],[\"integration\",[\"subexpr\",\"@mut\",[[\"get\",\"integrationData.content\",[\"loc\",[null,[39,16],[39,39]]]]],[],[]],\"filterOptions\",[\"subexpr\",\"@mut\",[[\"get\",\"filterOptions\",[\"loc\",[null,[40,18],[40,31]]]]],[],[]],\"locations\",[\"subexpr\",\"@mut\",[[\"get\",\"locations.persisted\",[\"loc\",[null,[41,14],[41,33]]]]],[],[]],\"company\",[\"subexpr\",\"@mut\",[[\"get\",\"company\",[\"loc\",[null,[42,12],[42,19]]]]],[],[]],\"save\",[\"subexpr\",\"action\",[\"sync\"],[],[\"loc\",[null,[43,9],[43,24]]]],\"handleFailedQuery\",[\"subexpr\",\"action\",[[\"get\",\"handleFailedQuery\",[\"loc\",[null,[44,30],[44,47]]]]],[],[\"loc\",[null,[44,22],[44,48]]]],\"hideFlash\",[\"subexpr\",\"action\",[[\"get\",\"hideFlash\",[\"loc\",[null,[45,22],[45,31]]]]],[],[\"loc\",[null,[45,14],[45,32]]]],\"showFlash\",[\"subexpr\",\"action\",[[\"get\",\"showFlash\",[\"loc\",[null,[46,22],[46,31]]]]],[],[\"loc\",[null,[46,14],[46,32]]]],\"addFilter\",[\"subexpr\",\"action\",[[\"get\",\"addFilter\",[\"loc\",[null,[47,22],[47,31]]]],[\"get\",\"integrationData\",[\"loc\",[null,[47,32],[47,47]]]]],[],[\"loc\",[null,[47,14],[47,48]]]],\"removeFilter\",[\"subexpr\",\"action\",[[\"get\",\"removeFilter\",[\"loc\",[null,[48,25],[48,37]]]],[\"get\",\"integrationData\",[\"loc\",[null,[48,38],[48,53]]]]],[],[\"loc\",[null,[48,17],[48,54]]]]],[\"loc\",[null,[38,4],[49,6]]]]\n        ],\n        locals: [\"filterComponent\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 51,\n            \"column\": 5\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/one-login/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el1,\"class\",\"js-sync-settings-one-login\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"border rounded px2 py3 my2 center relative\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"img\");\n        dom.setAttribute(el3,\"src\",\"assets/images/integrations/onelogin-logo.png\");\n        dom.setAttribute(el3,\"style\",\"height:50px\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"mt3 mb0\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"style\",\"position:absolute;right:.5em;top:1em\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"h2\");\n        dom.setAttribute(el1,\"class\",\"mt4\");\n        var el2 = dom.createTextNode(\"Employee Sync Filter\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"dl\");\n        dom.setAttribute(el1,\"class\",\"accordion\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element1 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element1, [3]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element1, [5]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(fragment, [4]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isInvalid\",[\"loc\",[null,[6,12],[6,21]]]]],[],0,1,[\"loc\",[null,[6,6],[24,13]]]],\n        [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[27,33],[27,36]]]]],[],[]]],2,null,[\"loc\",[null,[27,6],[29,27]]]],\n        [\"block\",\"each\",[[\"get\",\"filterComponents\",[\"loc\",[null,[37,10],[37,26]]]]],[],3,null,[\"loc\",[null,[37,2],[50,11]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/sync-settings/route', ['exports', 'ember', 'garaje/mixins/reset-scroll', 'garaje/mixins/intercom-update', 'garaje/utils/url-builder'], function (exports, Ember, ResetScroll, IntercomUpdate, urlBuilder) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Route.extend(ResetScroll['default'], IntercomUpdate['default'], {\n    titleToken: 'Sync Settings',\n    googleSyncManager: Ember['default'].inject.service(),\n    integrationsManager: Ember['default'].inject.service(),\n    ajax: Ember['default'].inject.service(),\n    request: Ember['default'].computed({\n      get: function get() {\n        return this.get('ajax').request;\n      }\n    }).volatile(),\n\n    locations: Ember['default'].inject.service(),\n\n    model: function model() {\n      var hash = {\n        integrations: this.get('integrationsManager').loadIntegration(this.get('currentLocation.company'))\n      };\n\n      return Ember['default'].RSVP.hash(hash);\n    },\n    afterModel: function afterModel(model) {\n      var directorySyncProvider = this.get('currentLocation.company.directorySyncProvider');\n      if (!directorySyncProvider) {\n        this.transitionTo('employees.index');\n      } else {\n        var url = undefined;\n\n        if (this.get('currentLocation.company.oneLogin.content')) {\n          url = urlBuilder['default'].v2.integrations.oneLoginCustomAttributesUrl(this.get('currentLocation.company.oneLogin.id'));\n\n          model.filterOptions = this.get('ajax').request(url).then(function (response) {\n            return response.data;\n          });\n        } else if (this.get('currentLocation.company.oktaIntegration.content')) {\n          url = urlBuilder['default'].v2.integrations.oktaCustomAttributesUrl(this.get('currentLocation.company.oktaIntegration.id'));\n\n          model.filterOptions = this.get('ajax').request(url).then(function (response) {\n            return response.data;\n          });\n\n          var groupsUrl = urlBuilder['default'].v2.integrations.oktaGroupsUrl(this.get('currentLocation.company.directorySyncProvider.id'));\n\n          model.directoryGroups = this.get('ajax').request(groupsUrl).then(function (response) {\n            return response.data;\n          });\n        }\n      }\n\n      return Ember['default'].RSVP.hash(model);\n    },\n\n    activate: function activate() {\n      this._super();\n      //running in next run loop to avoid active getting removed by ember default behavior when coming from employees\n      Ember['default'].run.next(this, function () {\n        this.controllerFor('application').set('employeesActive', true);\n      });\n    },\n    setupController: function setupController(controller, model) {\n      this._super.apply(this, arguments);\n      controller.set('filterOptions', []);\n      controller.set('directoryGroups', []);\n\n      if (model.filterOptions) {\n        controller.set('filterOptions', model.filterOptions._result);\n      }\n\n      if (model.directoryGroups) {\n        controller.set('directoryGroups', model.directoryGroups._result);\n      }\n\n      controller.set('locations', this.get('locations'));\n    },\n    renderTemplate: function renderTemplate(controller) {\n      this._super();\n\n      this.render('employees/nav', {\n        outlet: 'subnav',\n        controller: controller\n      });\n    },\n\n    deactivate: function deactivate() {\n      this._super();\n      this.controllerFor('application').set('employeesActive', false);\n    },\n\n    actions: {\n      willTransition: function willTransition(transition) {\n        var employeesFilter = undefined;\n\n        if (this.get('currentLocation.company.oneLogin.content') || this.get('currentLocation.company.oktaIntegration.content')) {\n          employeesFilter = this.get('currentLocation.company.directorySyncProvider');\n        } else {\n          employeesFilter = this.store.peekAll('employees-filter').get('firstObject');\n        }\n\n        var rollback = undefined;\n        var keepBubbling = true;\n\n        if (employeesFilter.get('hasDirtyAttributes')) {\n          rollback = window.confirm('You will lose any unsaved changes. Are you sure you want to continue?');\n\n          if (rollback) {\n            Ember['default'].run.next(function () {\n              employeesFilter.rollbackAttributes();\n            });\n          } else {\n            transition.abort();\n\n            keepBubbling = false;\n          }\n        }\n\n        return keepBubbling;\n      }\n    }\n  });\n\n});","define('garaje/sync-settings/template', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 17,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/sync-settings/template.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"mt4\");\n        var el3 = dom.createTextNode(\"Sync Settings\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"component\",[[\"get\",\"syncSettingsComponent\",[\"loc\",[null,[4,14],[4,35]]]]],[\"company\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.company\",[\"loc\",[null,[5,10],[5,33]]]]],[],[]],\"locations\",[\"subexpr\",\"@mut\",[[\"get\",\"locations\",[\"loc\",[null,[6,12],[6,21]]]]],[],[]],\"filterOptions\",[\"subexpr\",\"@mut\",[[\"get\",\"filterOptions\",[\"loc\",[null,[7,16],[7,29]]]]],[],[]],\"directoryGroups\",[\"subexpr\",\"@mut\",[[\"get\",\"directoryGroups\",[\"loc\",[null,[8,18],[8,33]]]]],[],[]],\"showFlash\",[\"subexpr\",\"action\",[\"_showFlash\"],[],[\"loc\",[null,[9,12],[9,33]]]],\"hideFlash\",[\"subexpr\",\"action\",[\"_hideFlash\"],[],[\"loc\",[null,[10,12],[10,33]]]],\"handleFailedQuery\",[\"subexpr\",\"action\",[\"handleFailedQuery\"],[],[\"loc\",[null,[11,20],[11,48]]]],\"addFilter\",[\"subexpr\",\"action\",[\"addFilter\"],[],[\"loc\",[null,[12,12],[12,32]]]],\"removeFilter\",[\"subexpr\",\"action\",[\"removeFilter\"],[],[\"loc\",[null,[13,15],[13,38]]]]],[\"loc\",[null,[4,2],[14,4]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/-admin', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 43,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/-admin.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"columns\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        dom.setAttribute(el2,\"autocomplete\",\"off\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"row\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"medium-9 columns\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"row\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"medium-9 columns\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"row\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"medium-9 columns\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element0, [1, 1]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3, 1]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element0, [5, 1]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"admin.name\",[\"loc\",[null,[6,14],[6,24]]]]],[],[]],\"label\",\"Full Name\",\"inputClass\",\"location-adminname\",\"autocomplete\",\"off\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.admin.name\",[\"loc\",[null,[10,18],[10,35]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[11,18],[11,27]]]]],[],[]]],[\"loc\",[null,[5,8],[12,10]]]],\n        [\"inline\",\"email-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"admin.email\",[\"loc\",[null,[18,14],[18,25]]]]],[],[]],\"label\",\"Email Address\",\"inputClass\",\"location-adminemail\",\"autocomplete\",\"off\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.admin.email\",[\"loc\",[null,[22,18],[22,36]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[23,18],[23,27]]]]],[],[]],\"domain\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.domain\",[\"loc\",[null,[24,15],[24,37]]]]],[],[]]],[\"loc\",[null,[17,8],[25,10]]]],\n        [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"admin.password\",[\"loc\",[null,[31,14],[31,28]]]]],[],[]],\"label\",\"Password\",\"type\",\"password\",\"inputClass\",\"location-adminpassword\",\"autocomplete\",\"off\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.admin.password\",[\"loc\",[null,[36,18],[36,39]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[37,18],[37,27]]]]],[],[]]],[\"loc\",[null,[30,8],[38,10]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/application', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\",\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 10\n          }\n        },\n        \"moduleName\": \"garaje/templates/application.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"onboarding-flash-message\",[],[\"flashVisible\",[\"subexpr\",\"@mut\",[[\"get\",\"onboardingFlashVisible\",[\"loc\",[null,[1,40],[1,62]]]]],[],[]],\"message\",[\"subexpr\",\"@mut\",[[\"get\",\"message\",[\"loc\",[null,[1,71],[1,78]]]]],[],[]],\"type\",[\"subexpr\",\"@mut\",[[\"get\",\"type\",[\"loc\",[null,[1,84],[1,88]]]]],[],[]],\"action\",\"hideFlash\"],[\"loc\",[null,[1,0],[1,109]]]],\n        [\"content\",\"outlet\",[\"loc\",[null,[2,0],[2,10]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/badge-enable', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 8,\n            \"column\": 8\n          }\n        },\n        \"moduleName\": \"garaje/templates/badge-enable.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createTextNode(\"  \");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"mx-auto center mt4 js-emptyState\");\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"emptyImage empty-badge\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"mt3\");\n        var el3 = dom.createTextNode(\"Automatically print visitor badges.\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"h4 grayDark m1\");\n        var el3 = dom.createTextNode(\"Easily provide guests with legible, customizable visitor badges.\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"a\");\n        dom.setAttribute(el2,\"class\",\"btn btn--blue mt3\");\n        var el3 = dom.createTextNode(\"Enable badge printing \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"a\");\n        dom.setAttribute(el2,\"class\",\"h4 block mt2\");\n        dom.setAttribute(el2,\"href\",\"https://help.envoy.co/getting-started/enable-badge-printing/\");\n        dom.setAttribute(el2,\"target\",\"_blank\");\n        dom.setAttribute(el2,\"tabindex\",\"-1\");\n        var el3 = dom.createTextNode(\"Learn more about badge printing\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [1, 7]);\n        var morphs = new Array(1);\n        morphs[0] = dom.createElementMorph(element0);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"enableBadgePrinting\"],[],[\"loc\",[null,[5,7],[5,39]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/badge', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 100,\n                \"column\": 16\n              },\n              \"end\": {\n                \"line\": 102,\n                \"column\": 16\n              }\n            },\n            \"moduleName\": \"garaje/templates/badge.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"link-to\",[\"Premium Feature\",\"plans\"],[\"class\",\"premiumFeature js-h4-a-custom-css-title\",\"tabindex\",\"-1\"],[\"loc\",[null,[101,18],[101,117]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 108,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 110,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/templates/badge.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"saveBadgeCSS\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[109,18],[109,125]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 111,\n                      \"column\": 80\n                    },\n                    \"end\": {\n                      \"line\": 111,\n                      \"column\": 103\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/badge.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"Edit\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes() { return []; },\n                statements: [\n\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 111,\n                      \"column\": 103\n                    },\n                    \"end\": {\n                      \"line\": 111,\n                      \"column\": 117\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/badge.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"Enable\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes() { return []; },\n                statements: [\n\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 110,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 112,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/templates/badge.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"a\");\n                dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element3 = dom.childAt(fragment, [1]);\n                var morphs = new Array(2);\n                morphs[0] = dom.createElementMorph(element3);\n                morphs[1] = dom.createMorphAt(element3,0,0);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"editBadgeCSS\"],[],[\"loc\",[null,[111,21],[111,46]]]],\n                [\"block\",\"if\",[[\"get\",\"isCSSCustom\",[\"loc\",[null,[111,86],[111,97]]]]],[],0,1,[\"loc\",[null,[111,80],[111,124]]]]\n              ],\n              locals: [],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 107,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 113,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/templates/badge.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[108,22],[108,32]]]]],[],0,1,[\"loc\",[null,[108,16],[112,23]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 113,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 115,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/templates/badge.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"link-to\",[\"Upgrade to Premium\",\"badge-edit\"],[\"class\",\"btn btn--small btn--blue\"],[\"loc\",[null,[114,16],[114,94]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 106,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 116,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/badge.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"subscription.canAccessCustomBadge\",[\"loc\",[null,[107,20],[107,53]]]]],[],0,1,[\"loc\",[null,[107,14],[115,21]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 124,\n                  \"column\": 18\n                },\n                \"end\": {\n                  \"line\": 128,\n                  \"column\": 18\n                }\n              },\n              \"moduleName\": \"garaje/templates/badge.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                    \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              dom.setAttribute(el1,\"class\",\"right\");\n              var el2 = dom.createTextNode(\"\\n                      \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"a\");\n              dom.setAttribute(el2,\"class\",\"js-reset-css\");\n              var el3 = dom.createTextNode(\"Reset to default\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n                    \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [1, 1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element0);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"resetBadgeCSS\"],[],[\"loc\",[null,[126,46],[126,72]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 119,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 138,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/templates/badge.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"mt3 clearfix\");\n            var el2 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"col col-6 pr1\");\n            var el3 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"label\");\n            var el4 = dom.createTextNode(\"\\n                  CSS\\n\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"                \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n              \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"col col-6 pl1\");\n            var el3 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"label\");\n            var el4 = dom.createTextNode(\"HTML (Read-only)\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [1]);\n            var element2 = dom.childAt(element1, [1]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n            morphs[1] = dom.createMorphAt(element2,3,3);\n            morphs[2] = dom.createMorphAt(dom.childAt(element1, [3]),3,3);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"isCSSCustom\",[\"loc\",[null,[124,24],[124,35]]]]],[],0,null,[\"loc\",[null,[124,18],[128,25]]]],\n            [\"inline\",\"ivy-codemirror\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"stagingCSS\",[\"loc\",[null,[130,39],[130,49]]]]],[],[]],\"lineNumbers\",\"true\",\"lineWrapping\",\"true\",\"mode\",\"css\"],[\"loc\",[null,[130,16],[130,101]]]],\n            [\"inline\",\"ivy-codemirror\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.defaultHTML\",[\"loc\",[null,[135,39],[135,56]]]]],[],[]],\"lineNumbers\",true,\"lineWrapping\",true,\"htmlMode\",true,\"mode\",\"xml\",\"readOnly\",\"nocursor\"],[\"loc\",[null,[135,16],[135,138]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 92,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 140,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/badge.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 flex flex-column mt3 js-css\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/features/customcss.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Custom CSS for badges\\n\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"              \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Further customize your badge layout and design.\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var element5 = dom.childAt(element4, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element5, [3, 1]),1,1);\n          morphs[1] = dom.createMorphAt(element5,5,5);\n          morphs[2] = dom.createMorphAt(element4,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"subscription.premiumFeatureBadgeVisible\",[\"loc\",[null,[100,22],[100,61]]]]],[],0,null,[\"loc\",[null,[100,16],[102,23]]]],\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[106,39],[106,42]]]]],[],[]]],1,null,[\"loc\",[null,[106,12],[116,33]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[119,23],[119,33]]]]],[\"class\",\"js-tokenized\"],2,null,[\"loc\",[null,[119,10],[138,24]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1, child2]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 144,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/badge.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Visitor Badge\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 grayDarker\");\n        var el5 = dom.createTextNode(\"Customize the design of your visitor badges. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/printers-and-badges/how-do-i-enable-badge-printing-and-customize-design/\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"flex\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"badgeDesigner\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"iframe\");\n        dom.setAttribute(el7,\"class\",\"js-badge-preview\");\n        dom.setAttribute(el7,\"scrolling\",\"no\");\n        dom.setAttribute(el7,\"frameborder\",\"0\");\n        dom.setAttribute(el7,\"tabindex\",\"-1\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"label\");\n        dom.setAttribute(el6,\"class\",\"checkbox mt2 block\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"label\");\n        dom.setAttribute(el7,\"class\",\"toggle toggle--tiny\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            Show preview with \\\"No NDA\\\" stamp\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto ml3 js-badge-configuration\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"fieldset\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"col col-6 pr1\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"label\");\n        dom.setAttribute(el8,\"for\",\"_brandingSelect\");\n        var el9 = dom.createTextNode(\"Branding\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"col col-6 pl1\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"label\");\n        dom.setAttribute(el8,\"for\",\"_photoSelect\");\n        var el9 = dom.createTextNode(\"Visitor Photo\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"label\");\n        dom.setAttribute(el7,\"for\",\"_field1Select\");\n        var el8 = dom.createTextNode(\"Custom Field 1 \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"right\");\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"class\",\"checkbox\");\n        var el10 = dom.createComment(\"\");\n        dom.appendChild(el9, el10);\n        var el10 = dom.createTextNode(\"Show Label\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"label\");\n        dom.setAttribute(el7,\"for\",\"_field2Select\");\n        var el8 = dom.createTextNode(\"Custom Field 2 \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"right\");\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"class\",\"checkbox\");\n        var el10 = dom.createComment(\"\");\n        dom.appendChild(el9, el10);\n        var el10 = dom.createTextNode(\"Show Label\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"label\");\n        dom.setAttribute(el7,\"class\",\"checkbox block mb2\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"label\");\n        dom.setAttribute(el8,\"class\",\"toggle toggle--tiny\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createComment(\"\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"span\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              Time of Entry\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Advanced\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element6 = dom.childAt(fragment, [0]);\n        var element7 = dom.childAt(element6, [3]);\n        var element8 = dom.childAt(element7, [1, 5]);\n        var element9 = dom.childAt(element8, [1]);\n        var element10 = dom.childAt(element9, [1]);\n        var element11 = dom.childAt(element10, [1]);\n        var element12 = dom.childAt(element8, [3]);\n        var element13 = dom.childAt(element12, [1]);\n        var element14 = dom.childAt(element6, [5]);\n        var morphs = new Array(16);\n        morphs[0] = dom.createMorphAt(element6,1,1);\n        morphs[1] = dom.createElementMorph(element7);\n        morphs[2] = dom.createAttrMorph(element10, 'style');\n        morphs[3] = dom.createAttrMorph(element11, 'srcdoc');\n        morphs[4] = dom.createMorphAt(dom.childAt(element9, [3, 1]),1,1);\n        morphs[5] = dom.createMorphAt(dom.childAt(element13, [1]),3,3);\n        morphs[6] = dom.createMorphAt(dom.childAt(element13, [3]),3,3);\n        morphs[7] = dom.createMorphAt(dom.childAt(element13, [5, 1, 0]),0,0);\n        morphs[8] = dom.createMorphAt(element13,7,7);\n        morphs[9] = dom.createMorphAt(dom.childAt(element13, [9, 1, 0]),0,0);\n        morphs[10] = dom.createMorphAt(element13,11,11);\n        morphs[11] = dom.createMorphAt(dom.childAt(element13, [13, 1]),1,1);\n        morphs[12] = dom.createMorphAt(element13,15,15);\n        morphs[13] = dom.createMorphAt(element12,3,3);\n        morphs[14] = dom.createElementMorph(element14);\n        morphs[15] = dom.createMorphAt(dom.childAt(element14, [1]),3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"printer-config\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"printer\",[\"loc\",[null,[3,25],[3,32]]]]],[],[]],\"showFlash\",[\"subexpr\",\"action\",[\"_showFlash\"],[],[\"loc\",[null,[3,43],[3,64]]]],\"hideFlash\",[\"subexpr\",\"action\",[\"_hideFlash\"],[],[\"loc\",[null,[3,75],[3,96]]]]],[\"loc\",[null,[3,2],[3,98]]]],\n        [\"element\",\"action\",[\"save\"],[\"on\",\"submit\"],[\"loc\",[null,[5,8],[5,37]]]],\n        [\"attribute\",\"style\",[\"get\",\"customBadgeStyle\",[\"loc\",[null,[12,45],[12,61]]]]],\n        [\"attribute\",\"srcdoc\",[\"get\",\"previewHTML\",[\"loc\",[null,[13,85],[13,96]]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-time-label\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"isNoNdaBadgeVisible\",[\"loc\",[null,[17,68],[17,87]]]]],[],[]]],[\"loc\",[null,[17,14],[17,89]]]],\n        [\"inline\",\"x-select-blockless\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"brandingOptions\",[\"loc\",[null,[29,22],[29,37]]]]],[],[]],\"class\",\"js-branding\",\"id\",\"_brandingSelect\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.branding\",[\"loc\",[null,[32,20],[32,34]]]]],[],[]],\"optionValuePath\",\"content.value\",\"optionLabelPath\",\"content.label\"],[\"loc\",[null,[28,14],[35,16]]]],\n        [\"inline\",\"x-select-blockless\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"photoOptions\",[\"loc\",[null,[41,22],[41,34]]]]],[],[]],\"class\",\"js-photo\",\"id\",\"_photoSelect\",\"optionValuePath\",\"content.value\",\"optionLabelPath\",\"content.label\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.photo\",[\"loc\",[null,[46,20],[46,31]]]]],[],[]],\"action\",[\"subexpr\",\"action\",[\"savePhotoBadge\"],[],[\"loc\",[null,[47,21],[47,46]]]]],[\"loc\",[null,[40,14],[48,16]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-label1\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.customField1LabelEnabled\",[\"loc\",[null,[51,148],[51,178]]]]],[],[]]],[\"loc\",[null,[51,98],[51,180]]]],\n        [\"inline\",\"x-select-blockless\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"customFields\",[\"loc\",[null,[53,20],[53,32]]]]],[],[]],\"class\",\"js-field1\",\"id\",\"_field1Select\",\"optionValuePath\",\"content.value\",\"optionLabelPath\",\"content.label\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.customField1\",[\"loc\",[null,[58,18],[58,36]]]]],[],[]]],[\"loc\",[null,[52,12],[59,14]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-label2\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.customField2LabelEnabled\",[\"loc\",[null,[61,148],[61,178]]]]],[],[]]],[\"loc\",[null,[61,98],[61,180]]]],\n        [\"inline\",\"x-select-blockless\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"customFields\",[\"loc\",[null,[63,20],[63,32]]]]],[],[]],\"class\",\"js-field2\",\"id\",\"_field2Select\",\"optionValuePath\",\"content.value\",\"optionLabelPath\",\"content.label\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.customField2\",[\"loc\",[null,[68,18],[68,36]]]]],[],[]]],[\"loc\",[null,[62,12],[69,14]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-time-label\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.timeOfEntryEnabled\",[\"loc\",[null,[73,70],[73,94]]]]],[],[]]],[\"loc\",[null,[73,16],[73,96]]]],\n        [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"inputCustomMessage\",[\"loc\",[null,[79,34],[79,52]]]]],[],[]],\"inputClass\",\"js-custom-message\",\"label\",\"Custom Message\"],[\"loc\",[null,[79,12],[79,108]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"save\",\"classNames\",\"btn btn--medium btn--green\",\"default\",\"Save Badge\",\"pending\",\"Saving...\"],[\"loc\",[null,[82,10],[82,121]]]],\n        [\"element\",\"action\",[\"saveBadgeCSS\"],[\"on\",\"submit\"],[\"loc\",[null,[88,8],[88,45]]]],\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditingBadgeCSS\",[\"loc\",[null,[92,30],[92,47]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"isDirty\",[\"loc\",[null,[92,56],[92,63]]]]],[],[]],\"rollback\",\"rollback\"],0,null,[\"loc\",[null,[92,6],[140,24]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/billing/-paying', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 20,\n                \"column\": 16\n              },\n              \"end\": {\n                \"line\": 22,\n                \"column\": 16\n              }\n            },\n            \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"icon-alert icon-alert-large-dims block mx-auto js-icon-alert\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 22,\n                \"column\": 16\n              },\n              \"end\": {\n                \"line\": 24,\n                \"column\": 16\n              }\n            },\n            \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element5 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createAttrMorph(element5, 'class');\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"class\",[\"concat\",[\"card \",[\"get\",\"cardType\",[\"loc\",[null,[23,38],[23,46]]]],\" js-card-type\"]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 31,\n                  \"column\": 18\n                },\n                \"end\": {\n                  \"line\": 33,\n                  \"column\": 18\n                }\n              },\n              \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                    \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"p\");\n              dom.setAttribute(el1,\"class\",\"m0 js-delinquent-message\");\n              var el2 = dom.createTextNode(\"Your card was declined.\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"br\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\" Update your card to resume service.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 37,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 39,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"saveCC\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[38,20],[38,121]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 39,\n                      \"column\": 18\n                    },\n                    \"end\": {\n                      \"line\": 41,\n                      \"column\": 18\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                    \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"a\");\n                  dom.setAttribute(el1,\"class\",\"btn btn--small btn--red\");\n                  var el2 = dom.createTextNode(\"Fix\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element2 = dom.childAt(fragment, [1]);\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createElementMorph(element2);\n                  return morphs;\n                },\n                statements: [\n                  [\"element\",\"action\",[\"editCC\"],[],[\"loc\",[null,[40,55],[40,74]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 41,\n                      \"column\": 18\n                    },\n                    \"end\": {\n                      \"line\": 43,\n                      \"column\": 18\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                    \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"a\");\n                  dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline\");\n                  var el2 = dom.createTextNode(\"Edit\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n                  \");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element1 = dom.childAt(fragment, [1]);\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createElementMorph(element1);\n                  return morphs;\n                },\n                statements: [\n                  [\"element\",\"action\",[\"editCC\"],[],[\"loc\",[null,[42,59],[42,78]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 39,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 43,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"if\",[[\"get\",\"model.delinquent\",[\"loc\",[null,[39,28],[39,44]]]]],[],0,1,[\"loc\",[null,[39,18],[43,18]]]]\n              ],\n              locals: [],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 36,\n                  \"column\": 16\n                },\n                \"end\": {\n                  \"line\": 44,\n                  \"column\": 16\n                }\n              },\n              \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[37,24],[37,34]]]]],[],0,1,[\"loc\",[null,[37,18],[43,25]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 27,\n                \"column\": 14\n              },\n              \"end\": {\n                \"line\": 45,\n                \"column\": 14\n              }\n            },\n            \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"flex-auto ml2\");\n            var el2 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h4\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"p\");\n            dom.setAttribute(el2,\"class\",\"m0 js-last4\");\n            var el3 = dom.createTextNode(\"●●●● \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\" · Expires \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"/\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"                \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element3 = dom.childAt(fragment, [1]);\n            var element4 = dom.childAt(element3, [3]);\n            var morphs = new Array(6);\n            morphs[0] = dom.createMorphAt(dom.childAt(element3, [1]),0,0);\n            morphs[1] = dom.createMorphAt(element4,1,1);\n            morphs[2] = dom.createMorphAt(element4,3,3);\n            morphs[3] = dom.createMorphAt(element4,5,5);\n            morphs[4] = dom.createMorphAt(element3,5,5);\n            morphs[5] = dom.createMorphAt(fragment,3,3,contextualElement);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"model.brand\",[\"loc\",[null,[29,22],[29,37]]]],\n            [\"content\",\"model.last4\",[\"loc\",[null,[30,70],[30,85]]]],\n            [\"content\",\"model.expiryMonth\",[\"loc\",[null,[30,103],[30,124]]]],\n            [\"content\",\"model.expiryYear\",[\"loc\",[null,[30,125],[30,145]]]],\n            [\"block\",\"if\",[[\"get\",\"model.delinquent\",[\"loc\",[null,[31,24],[31,40]]]]],[],0,null,[\"loc\",[null,[31,18],[33,25]]]],\n            [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[36,43],[36,46]]]]],[],[]]],1,null,[\"loc\",[null,[36,16],[44,37]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child3 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 51,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 53,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"saveCC\",\"class\",\"btn btn--small\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[52,20],[52,110]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 53,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 55,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"a\");\n                dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n                var el2 = dom.createTextNode(\"Add\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element0 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element0);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"editCC\"],[],[\"loc\",[null,[54,56],[54,75]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 50,\n                  \"column\": 16\n                },\n                \"end\": {\n                  \"line\": 56,\n                  \"column\": 16\n                }\n              },\n              \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[51,24],[51,34]]]]],[],0,1,[\"loc\",[null,[51,18],[55,25]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 45,\n                \"column\": 14\n              },\n              \"end\": {\n                \"line\": 57,\n                \"column\": 14\n              }\n            },\n            \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"flex-auto ml2\");\n            var el2 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h4\");\n            var el3 = dom.createTextNode(\"No card on file\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"p\");\n            dom.setAttribute(el2,\"class\",\"m0\");\n            var el3 = dom.createTextNode(\"Add a credit card to continue using Envoy.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,3,3,contextualElement);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[50,43],[50,46]]]]],[],[]]],0,null,[\"loc\",[null,[50,16],[56,37]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child4 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 60,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 68,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n            var el2 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"cc-form\",[],[\"action\",\"updateSubscription\",\"noIcon\",true,\"onSubmit\",\"saveCard\"],[\"loc\",[null,[62,16],[66,18]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 13,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 72,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"col col-6 px2\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h2\");\n          dom.setAttribute(el2,\"class\",\"mt4\");\n          var el3 = dom.createTextNode(\"Payment Method\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"fieldset\");\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"border rounded p2 my2 flex flex-column js-payment-method\");\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"div\");\n          dom.setAttribute(el4,\"class\",\"flex flex-center\");\n          var el5 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"div\");\n          dom.setAttribute(el5,\"class\",\"flex flex-center\");\n          dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n          var el6 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createTextNode(\"              \");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"            \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"          \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element6 = dom.childAt(fragment, [1, 3, 1]);\n          var element7 = dom.childAt(element6, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element7, [1]),1,1);\n          morphs[1] = dom.createMorphAt(element7,3,3);\n          morphs[2] = dom.createMorphAt(element6,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"model.delinquent\",[\"loc\",[null,[20,22],[20,38]]]]],[],0,1,[\"loc\",[null,[20,16],[24,23]]]],\n          [\"block\",\"if\",[[\"get\",\"model.isCCPresent\",[\"loc\",[null,[27,20],[27,37]]]]],[],2,3,[\"loc\",[null,[27,14],[57,21]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[60,25],[60,35]]]]],[\"class\",\"js-tokenized row\"],4,null,[\"loc\",[null,[60,12],[68,26]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1, child2, child3, child4]\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 89,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 91,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"payment-row\",[],[\"payment\",[\"subexpr\",\"@mut\",[[\"get\",\"payment\",[\"loc\",[null,[90,30],[90,37]]]]],[],[]]],[\"loc\",[null,[90,8],[90,39]]]]\n        ],\n        locals: [\"payment\"],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 91,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 93,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h3\");\n          dom.setAttribute(el1,\"class\",\"mx-auto grayLight py4 js-no-payments\");\n          var el2 = dom.createTextNode(\"No payments made yet.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 99,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/billing/-paying.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"clearfix mxn2\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6 px2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Current Plan\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"fieldset\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2 mt4\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"mt4\");\n        var el3 = dom.createTextNode(\"Payments\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"table\");\n        dom.setAttribute(el2,\"class\",\"table-light my3 border-bottom\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"thead\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"tr\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"th\");\n        var el6 = dom.createTextNode(\"Date\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"th\");\n        var el6 = dom.createTextNode(\"Amount\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"th\");\n        var el6 = dom.createTextNode(\"Receipt\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"th\");\n        var el6 = dom.createTextNode(\"Status\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tbody\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        var el3 = dom.createTextNode(\"Questions about your bill? \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        dom.setAttribute(el3,\"href\",\"https://envoy.co/contact\");\n        var el4 = dom.createTextNode(\"Contact us\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\".\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element8 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element8, [1, 3]),1,1);\n        morphs[1] = dom.createMorphAt(element8,3,3);\n        morphs[2] = dom.createMorphAt(dom.childAt(fragment, [2, 3, 3]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"current-subscription\",[],[\"subscription\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[7,21],[7,26]]]]],[],[]],\"yearlySavings\",[\"subexpr\",\"@mut\",[[\"get\",\"yearlySavings\",[\"loc\",[null,[8,22],[8,35]]]]],[],[]]],[\"loc\",[null,[6,8],[9,10]]]],\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditingCC\",[\"loc\",[null,[13,28],[13,39]]]]],[],[]]],0,null,[\"loc\",[null,[13,4],[72,22]]]],\n        [\"block\",\"each\",[[\"get\",\"payments\",[\"loc\",[null,[89,14],[89,22]]]]],[],1,2,[\"loc\",[null,[89,6],[93,15]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/billing/-trial', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 13,\n              \"column\": 14\n            },\n            \"end\": {\n              \"line\": 15,\n              \"column\": 14\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/-trial.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"                \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" Remaining\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"pluralized-word\",[[\"get\",\"model.trialDaysLeft\",[\"loc\",[null,[14,34],[14,53]]]],\"Day\"],[],[\"loc\",[null,[14,16],[14,61]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 15,\n              \"column\": 14\n            },\n            \"end\": {\n              \"line\": 17,\n              \"column\": 14\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/-trial.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"                Trial Over\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 19,\n              \"column\": 12\n            },\n            \"end\": {\n              \"line\": 21,\n              \"column\": 12\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/-trial.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"              \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"m0 js-trial-copy\");\n          var el2 = dom.createTextNode(\"We hope you're loving Envoy so far! If you have any questions, please \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          var el3 = dom.createTextNode(\"contact us\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\".\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1, 1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element1);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"redirectToEnvoy\",\"/contact\"],[],[\"loc\",[null,[20,115],[20,154]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 21,\n              \"column\": 12\n            },\n            \"end\": {\n              \"line\": 23,\n              \"column\": 12\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/-trial.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"              \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"m0 js-trial-copy\");\n          var el2 = dom.createTextNode(\"Thanks for trying Envoy! If you need help making a decision, please \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          var el3 = dom.createTextNode(\"contact us\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\".\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1, 1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element0);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"redirectToEnvoy\",\"/contact\"],[],[\"loc\",[null,[22,113],[22,152]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 31,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/billing/-trial.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"clearfix mxn2\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"px2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Your Trial\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"fieldset\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"border rounded p2 my2 flex flex-center js-trial\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"style\",\"width:50px;height:50px\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"icon-premiumPlan icon-premiumPlan-dims\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"flex-auto ml2\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        dom.setAttribute(el7,\"class\",\"js-trial-plan\");\n        var el8 = dom.createTextNode(\"Premium Trial\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"p\");\n        dom.setAttribute(el7,\"class\",\"m0 js-trial-days-remaining\");\n        var el8 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element2 = dom.childAt(fragment, [0, 1, 1, 3, 1]);\n        var element3 = dom.childAt(element2, [3]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element3, [3]),1,1);\n        morphs[1] = dom.createMorphAt(element3,5,5);\n        morphs[2] = dom.createMorphAt(element2,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"model.hasTrialDaysLeft\",[\"loc\",[null,[13,20],[13,42]]]]],[],0,1,[\"loc\",[null,[13,14],[17,21]]]],\n        [\"block\",\"if\",[[\"get\",\"model.hasTrialDaysLeft\",[\"loc\",[null,[19,18],[19,40]]]]],[],2,3,[\"loc\",[null,[19,12],[23,19]]]],\n        [\"inline\",\"link-to\",[\"Choose a Plan\",\"plans\"],[\"class\",\"btn btn--small btn--green\"],[\"loc\",[null,[25,10],[25,79]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/templates/billing/index', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 3,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/index.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"billing/paying\"],[],[\"loc\",[null,[2,2],[2,30]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/billing/index.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"billing/trial\"],[],[\"loc\",[null,[4,2],[4,29]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 6,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/billing/index.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"model.isSubscribed\",[\"loc\",[null,[1,6],[1,24]]]]],[],0,1,[\"loc\",[null,[1,0],[5,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/add-employee-table-row', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 11,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/add-employee-table-row.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"td\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"td\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"td\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),0,0);\n        morphs[1] = dom.createMorphAt(dom.childAt(fragment, [2]),0,0);\n        morphs[2] = dom.createMorphAt(dom.childAt(fragment, [4]),0,0);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"input\",[],[\"type\",\"text\",\"placeholder\",\"Name\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.name\",[\"loc\",[null,[1,49],[1,59]]]]],[],[]],\"class\",[\"subexpr\",\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"showError\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[1,4],[1,92]]]],\n        [\"inline\",\"input\",[],[\"type\",\"email\",\"placeholder\",\"Work Email\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.email\",[\"loc\",[null,[2,56],[2,67]]]]],[],[]],\"class\",[\"subexpr\",\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"showError\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[2,4],[2,100]]]],\n        [\"inline\",\"input\",[],[\"type\",\"tel\",\"placeholder\",\"Mobile Number\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.phoneNumber\",[\"loc\",[null,[3,57],[3,74]]]]],[],[]],\"class\",[\"subexpr\",\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"showError\",[]],\"error\"],[],[]],\" \",\"js-employee-phone-number\",\" \"],[],[]]],[\"loc\",[null,[3,4],[3,133]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/box-file-picker', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/box-file-picker.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"id\",\"box-select\");\n        dom.setAttribute(el1,\"data-link-type\",\"shared\");\n        dom.setAttribute(el1,\"data-multiselect\",\"false\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(1);\n        morphs[0] = dom.createAttrMorph(element0, 'data-client-id');\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"data-client-id\",[\"get\",\"boxClientId\",[\"loc\",[null,[1,87],[1,98]]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/brush-select-zoom', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 16,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 18,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"      \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"text\");\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"moment-format\",[[\"get\",\"tick.value\",[\"loc\",[null,[17,28],[17,38]]]],\"MMM D h:mm\"],[],[\"loc\",[null,[17,12],[17,53]]]]\n            ],\n            locals: [\"tick\"],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 14,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 20,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"nf-x-axis\",[],[\"useTemplate\",true,\"tickCount\",12],0,null,[\"loc\",[null,[16,4],[18,18]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 22,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 24,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"      \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"text\");\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"moment-format\",[[\"get\",\"tick.value\",[\"loc\",[null,[23,28],[23,38]]]],\"MMM D\"],[],[\"loc\",[null,[23,12],[23,48]]]]\n            ],\n            locals: [\"tick\"],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 20,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 26,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"nf-x-axis\",[],[\"useTemplate\",true,\"tickCount\",18],0,null,[\"loc\",[null,[22,4],[24,18]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 28,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 30,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"text\");\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"tick.value\",[\"loc\",[null,[29,10],[29,24]]]]\n          ],\n          locals: [\"tick\"],\n          templates: []\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 33,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 35,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"selectedLine.hoverData.y\",[\"loc\",[null,[34,4],[34,32]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child4 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 40,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 42,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"      \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"moment-format\",[[\"get\",\"selectedLine.hoverData.x\",[\"loc\",[null,[41,22],[41,46]]]],\"MMM DD h:mm\"],[],[\"loc\",[null,[41,6],[41,62]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 38,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 44,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"nf-hover-label-lower-text\",[],[\"xData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.x\",[\"loc\",[null,[40,39],[40,63]]]]],[],[]],\"yData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.y\",[\"loc\",[null,[40,70],[40,94]]]]],[],[]],\"lowerTextWidth\",[\"subexpr\",\"@mut\",[[\"get\",\"lowerTextWidth\",[\"loc\",[null,[40,110],[40,124]]]]],[],[]]],0,null,[\"loc\",[null,[40,4],[42,34]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child5 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 46,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 48,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"      \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"moment-format\",[[\"get\",\"selectedLine.hoverData.x\",[\"loc\",[null,[47,22],[47,46]]]],\"MMM DD\"],[],[\"loc\",[null,[47,6],[47,57]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 44,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 50,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"nf-hover-label-lower-text\",[],[\"xData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.x\",[\"loc\",[null,[46,39],[46,63]]]]],[],[]],\"yData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.y\",[\"loc\",[null,[46,70],[46,94]]]]],[],[]],\"lowerTextWidth\",[\"subexpr\",\"@mut\",[[\"get\",\"lowerTextWidth\",[\"loc\",[null,[46,110],[46,124]]]]],[],[]]],0,null,[\"loc\",[null,[46,4],[48,34]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child6 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 52,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 59,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n            morphs[2] = dom.createMorphAt(fragment,5,5,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"nf-vertical-line-partial\",[],[\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.x\",[\"loc\",[null,[54,33],[54,57]]]]],[],[]],\"yData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.y\",[\"loc\",[null,[54,64],[54,88]]]]],[],[]]],[\"loc\",[null,[54,4],[54,90]]]],\n            [\"inline\",\"nf-area\",[],[\"data\",[\"subexpr\",\"@mut\",[[\"get\",\"zoomData\",[\"loc\",[null,[56,19],[56,27]]]]],[],[]],\"interpolator\",\"monotone\",\"trackingMode\",\"snap-last\",\"selected\",true],[\"loc\",[null,[56,4],[56,92]]]],\n            [\"inline\",\"nf-brush-selection\",[],[\"right\",[\"subexpr\",\"@mut\",[[\"get\",\"selectRight\",[\"loc\",[null,[57,31],[57,42]]]]],[],[]],\"left\",[\"subexpr\",\"@mut\",[[\"get\",\"selectLeft\",[\"loc\",[null,[57,48],[57,58]]]]],[],[]],\"formatter\",[\"subexpr\",\"@mut\",[[\"get\",\"selectionDisplayFormatter\",[\"loc\",[null,[57,69],[57,94]]]]],[],[]]],[\"loc\",[null,[57,4],[57,96]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\",\n              \"multiple-nodes\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 61,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(7);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          morphs[2] = dom.createMorphAt(fragment,5,5,contextualElement);\n          morphs[3] = dom.createMorphAt(fragment,7,7,contextualElement);\n          morphs[4] = dom.createMorphAt(fragment,9,9,contextualElement);\n          morphs[5] = dom.createMorphAt(fragment,11,11,contextualElement);\n          morphs[6] = dom.createMorphAt(fragment,13,13,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"isHours\",[\"loc\",[null,[14,8],[14,15]]]]],[],0,1,[\"loc\",[null,[14,2],[26,9]]]],\n          [\"block\",\"nf-y-axis\",[],[\"tickCount\",8],2,null,[\"loc\",[null,[28,2],[30,16]]]],\n          [\"inline\",\"nf-hover-label\",[],[\"xData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.x\",[\"loc\",[null,[32,25],[32,49]]]]],[],[]],\"yData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.y\",[\"loc\",[null,[32,56],[32,80]]]]],[],[]],\"upperTextWidth\",[\"subexpr\",\"@mut\",[[\"get\",\"upperTextWidth\",[\"loc\",[null,[32,96],[32,110]]]]],[],[]]],[\"loc\",[null,[32,2],[32,112]]]],\n          [\"block\",\"nf-hover-label-text\",[],[\"xData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.x\",[\"loc\",[null,[33,31],[33,55]]]]],[],[]],\"yData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.y\",[\"loc\",[null,[33,62],[33,86]]]]],[],[]],\"upperTextWidth\",[\"subexpr\",\"@mut\",[[\"get\",\"upperTextWidth\",[\"loc\",[null,[33,102],[33,116]]]]],[],[]]],3,null,[\"loc\",[null,[33,2],[35,26]]]],\n          [\"inline\",\"nf-hover-label-lower\",[],[\"xData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.x\",[\"loc\",[null,[36,31],[36,55]]]]],[],[]],\"yData\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine.hoverData.y\",[\"loc\",[null,[36,62],[36,86]]]]],[],[]],\"lowerTextWidth\",[\"subexpr\",\"@mut\",[[\"get\",\"lowerTextWidth\",[\"loc\",[null,[36,102],[36,116]]]]],[],[]]],[\"loc\",[null,[36,2],[36,118]]]],\n          [\"block\",\"if\",[[\"get\",\"isHours\",[\"loc\",[null,[38,8],[38,15]]]]],[],4,5,[\"loc\",[null,[38,2],[50,9]]]],\n          [\"block\",\"nf-graph-content\",[],[],6,null,[\"loc\",[null,[52,2],[59,23]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3, child4, child5, child6]\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 63,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 65,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"style\",\"position:absolute;top:20%;text-align:center;display:block;width:100%;opacity:.5\");\n          var el2 = dom.createTextNode(\"No data to display.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\",\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 70,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/brush-select-zoom.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"nf-graph\",[],[\"selected\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedLine\",[\"loc\",[null,[2,13],[2,25]]]]],[],[]],\"width\",1090,\"height\",300,\"showLanes\",true,\"showFrets\",true,\"paddingTop\",30,\"paddingLeft\",-12,\"paddingRight\",20,\"yMaxMode\",\"auto-nice\",\"yMin\",0,\"brushEndAction\",\"brushEnd\"],0,null,[\"loc\",[null,[1,0],[61,13]]]],\n        [\"block\",\"unless\",[[\"get\",\"hasEntryData\",[\"loc\",[null,[63,10],[63,22]]]]],[],1,null,[\"loc\",[null,[63,0],[65,11]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/calendar-grid', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/calendar-grid.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"th\");\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"day\",[\"loc\",[null,[6,14],[6,21]]]]\n        ],\n        locals: [\"day\"],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 11,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 23,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/calendar-grid.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"week-row\",[],[\"currentMonth\",[\"subexpr\",\"@mut\",[[\"get\",\"currentMonth\",[\"loc\",[null,[13,23],[13,35]]]]],[],[]],\"startDate\",[\"subexpr\",\"@mut\",[[\"get\",\"week.startDate\",[\"loc\",[null,[14,20],[14,34]]]]],[],[]],\"selectedDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedDate\",[\"loc\",[null,[15,23],[15,35]]]]],[],[]],\"selectedStartDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedStartDate\",[\"loc\",[null,[16,28],[16,45]]]]],[],[]],\"selectedEndDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedEndDate\",[\"loc\",[null,[17,26],[17,41]]]]],[],[]],\"hideTrailingDayCells\",[\"subexpr\",\"@mut\",[[\"get\",\"hideTrailingDayCells\",[\"loc\",[null,[18,31],[18,51]]]]],[],[]],\"hideLeadingDayCells\",[\"subexpr\",\"@mut\",[[\"get\",\"hideLeadingDayCells\",[\"loc\",[null,[19,30],[19,49]]]]],[],[]],\"events\",[\"subexpr\",\"@mut\",[[\"get\",\"week.events\",[\"loc\",[null,[20,17],[20,28]]]]],[],[]],\"invites\",[\"subexpr\",\"@mut\",[[\"get\",\"week.invites\",[\"loc\",[null,[21,18],[21,30]]]]],[],[]],\"action\",\"selectDate\"],[\"loc\",[null,[12,8],[22,31]]]]\n        ],\n        locals: [\"week\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 27,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/calendar-grid.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"calendar-grid\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"table\");\n        dom.setAttribute(el2,\"cellpadding\",\"0\");\n        dom.setAttribute(el2,\"cellspacing\",\"0\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"thead\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"tr\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tbody\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(dom.childAt(element0, [1, 1]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"headerDays\",[\"loc\",[null,[5,16],[5,26]]]]],[],0,null,[\"loc\",[null,[5,8],[7,17]]]],\n        [\"block\",\"each\",[[\"get\",\"weeksArray\",[\"loc\",[null,[11,14],[11,24]]]]],[],1,null,[\"loc\",[null,[11,6],[23,15]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/calendar-header', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 8,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/calendar-header.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"calendar-header\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"header\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"i\");\n        dom.setAttribute(el3,\"class\",\"previous\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"i\");\n        dom.setAttribute(el3,\"class\",\"next\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"clear\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var element1 = dom.childAt(element0, [1]);\n        var element2 = dom.childAt(element0, [5]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createElementMorph(element1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n        morphs[2] = dom.createElementMorph(element2);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"goBackOneMonth\"],[],[\"loc\",[null,[3,24],[3,51]]]],\n        [\"content\",\"monthName\",[\"loc\",[null,[4,10],[4,23]]]],\n        [\"element\",\"action\",[\"goToNextMonth\"],[],[\"loc\",[null,[5,20],[5,46]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/cc-form', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 9,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/cc-form.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createAttrMorph(element0, 'class');\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"class\",[\"concat\",[\"inline card \",[\"get\",\"cardType\",[\"loc\",[null,[8,30],[8,38]]]]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 12,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 14,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/cc-form.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"cardNumberErrorMessage\",[\"loc\",[null,[13,6],[13,32]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 14,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 16,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/cc-form.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      Card Number\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 32,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 34,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/cc-form.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"cardExpiryErrorMessage\",[\"loc\",[null,[33,10],[33,36]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 34,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 36,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/cc-form.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          Expiration (MM/YYYY)\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 51,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 53,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/cc-form.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"cardCvcErrorMessage\",[\"loc\",[null,[52,10],[52,33]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child6 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 53,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 55,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/cc-form.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          Security Code\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"modifiers\",\n          \"modifiers\": [\n            \"action\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 68,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/cc-form.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"form\");\n        dom.setAttribute(el1,\"autocomplete\",\"on\");\n        dom.setAttribute(el1,\"class\",\"js-cc-form relative\");\n        dom.setAttribute(el1,\"novalidate\",\"\");\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"label\");\n        dom.setAttribute(el2,\"for\",\"cc-number\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"clearfix mxn1\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6 px1\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"label\");\n        dom.setAttribute(el4,\"for\",\"cc-expiry\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6 px1\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"label\");\n        dom.setAttribute(el4,\"for\",\"cc-cvc\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element1 = dom.childAt(fragment, [0]);\n        var element2 = dom.childAt(element1, [3]);\n        var element3 = dom.childAt(element1, [7]);\n        var element4 = dom.childAt(element3, [1]);\n        var element5 = dom.childAt(element4, [1]);\n        var element6 = dom.childAt(element3, [3]);\n        var element7 = dom.childAt(element6, [1]);\n        var morphs = new Array(14);\n        morphs[0] = dom.createAttrMorph(element1, 'style');\n        morphs[1] = dom.createElementMorph(element1);\n        morphs[2] = dom.createMorphAt(element1,1,1);\n        morphs[3] = dom.createAttrMorph(element2, 'class');\n        morphs[4] = dom.createMorphAt(element2,1,1);\n        morphs[5] = dom.createMorphAt(element1,5,5);\n        morphs[6] = dom.createAttrMorph(element5, 'class');\n        morphs[7] = dom.createMorphAt(element5,1,1);\n        morphs[8] = dom.createMorphAt(element4,3,3);\n        morphs[9] = dom.createMorphAt(element4,5,5);\n        morphs[10] = dom.createMorphAt(element4,7,7);\n        morphs[11] = dom.createAttrMorph(element7, 'class');\n        morphs[12] = dom.createMorphAt(element7,1,1);\n        morphs[13] = dom.createMorphAt(element6,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"style\",[\"subexpr\",\"unless\",[[\"get\",\"noIcon\",[\"loc\",[null,[3,21],[3,27]]]],\"padding-left:2em;\"],[],[\"loc\",[null,[3,12],[3,49]]]]],\n        [\"element\",\"action\",[\"submitIt\"],[\"on\",\"submit\"],[\"loc\",[null,[4,6],[4,39]]]],\n        [\"block\",\"unless\",[[\"get\",\"noIcon\",[\"loc\",[null,[7,12],[7,18]]]]],[],0,null,[\"loc\",[null,[7,2],[9,13]]]],\n        [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"cardNumberErrorMessage\",[\"loc\",[null,[11,36],[11,58]]]],\"error-description\"],[],[\"loc\",[null,[11,31],[11,80]]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"cardNumberErrorMessage\",[\"loc\",[null,[12,17],[12,39]]]]],[\"class\",\"js-password\"],1,2,[\"loc\",[null,[12,4],[16,18]]]],\n        [\"inline\",\"input\",[],[\"id\",\"cc-number\",\"maxlength\",\"20\",\"data-stripe\",\"number\",\"autocomplete\",\"cc-number\",\"pattern\",\"\\\\d*\",\"enter\",\"submitIt\",\"autofocus\",true,\"class\",[\"subexpr\",\"concat\",[\"js-cc-number\",\" \",[\"subexpr\",\"if\",[[\"get\",\"cardNumberErrorMessage\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[18,2],[27,4]]]],\n        [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"cardExpiryErrorMessage\",[\"loc\",[null,[31,40],[31,62]]]],\"error-description\"],[],[\"loc\",[null,[31,35],[31,84]]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"cardExpiryErrorMessage\",[\"loc\",[null,[32,21],[32,43]]]]],[\"class\",\"js-password\"],3,4,[\"loc\",[null,[32,8],[36,22]]]],\n        [\"inline\",\"input\",[],[\"id\",\"cc-expiry\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"expirationMonthYear\",[\"loc\",[null,[40,12],[40,31]]]]],[],[]],\"maxlength\",\"9\",\"autocomplete\",\"cc-exp\",\"enter\",\"submitIt\",\"class\",[\"subexpr\",\"concat\",[\"js-cc-exp\",\" \",[\"subexpr\",\"if\",[[\"get\",\"cardExpiryErrorMessage\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[38,6],[45,8]]]],\n        [\"inline\",\"input\",[],[\"type\",\"hidden\",\"data-stripe\",\"exp-month\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"expirationMonth\",[\"loc\",[null,[46,58],[46,73]]]]],[],[]]],[\"loc\",[null,[46,6],[46,75]]]],\n        [\"inline\",\"input\",[],[\"type\",\"hidden\",\"data-stripe\",\"exp-year\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"expirationYear\",[\"loc\",[null,[47,57],[47,71]]]]],[],[]]],[\"loc\",[null,[47,6],[47,73]]]],\n        [\"attribute\",\"class\",[\"subexpr\",\"if\",[[\"get\",\"cardCvcErrorMessage\",[\"loc\",[null,[50,37],[50,56]]]],\"error-description\"],[],[\"loc\",[null,[50,32],[50,78]]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"cardCvcErrorMessage\",[\"loc\",[null,[51,21],[51,40]]]]],[\"class\",\"js-password\"],5,6,[\"loc\",[null,[51,8],[55,22]]]],\n        [\"inline\",\"input\",[],[\"id\",\"cc-cvc\",\"data-stripe\",\"cvc\",\"maxlength\",\"4\",\"autocomplete\",\"off\",\"enter\",\"submitIt\",\"class\",[\"subexpr\",\"concat\",[\"js-cc-cvc\",\" \",[\"subexpr\",\"if\",[[\"get\",\"cardCvcErrorMessage\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[57,6],[64,8]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5, child6]\n    };\n  }()));\n\n});","define('garaje/templates/components/col-pick-input', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/col-pick-input.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"yield\",[\"loc\",[null,[1,0],[1,9]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/color-picker', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/color-picker.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"yield\",[\"loc\",[null,[1,0],[1,9]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/configurator-option-group', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 14\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/configurator-option-group.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"yield\",[[\"get\",\"this\",[\"loc\",[null,[1,8],[1,12]]]]],[],[\"loc\",[null,[1,0],[1,14]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/configurator-option', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/configurator-option.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"yield\",[\"loc\",[null,[1,0],[1,9]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/current-subscription', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 8,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 10,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/current-subscription.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"mt1 green js-discount\");\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createUnsafeMorphAt(dom.childAt(fragment, [1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"upsell\",[\"loc\",[null,[9,39],[9,51]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 13,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 15,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/current-subscription.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Upgrade\",\"plans\"],[\"class\",\"btn btn--small btn--green flex-none\"],[\"loc\",[null,[14,4],[14,77]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 15,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 17,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/current-subscription.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Change plan\",\"plans\"],[\"class\",\"btn btn--small btn--outline flex-none\"],[\"loc\",[null,[16,4],[16,83]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 19,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/current-subscription.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"border rounded p2 my2 flex flex-center\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"style\",\"width:50px;height:50px\");\n        dom.setAttribute(el2,\"class\",\"flex-none\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex-auto ml2\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h4\");\n        dom.setAttribute(el3,\"class\",\"js-plan\");\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"m0 js-period\");\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" billing\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [1, 1]);\n        var element2 = dom.childAt(element0, [3]);\n        var morphs = new Array(5);\n        morphs[0] = dom.createAttrMorph(element1, 'class');\n        morphs[1] = dom.createMorphAt(dom.childAt(element2, [1]),0,0);\n        morphs[2] = dom.createMorphAt(dom.childAt(element2, [3]),0,0);\n        morphs[3] = dom.createMorphAt(element2,5,5);\n        morphs[4] = dom.createMorphAt(element0,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"concat\",[[\"get\",\"iconClasses\",[\"loc\",[null,[3,18],[3,29]]]],\" js-plan-icon\"]]],\n        [\"inline\",\"capitalize-word\",[[\"get\",\"plan\",[\"loc\",[null,[6,42],[6,46]]]]],[],[\"loc\",[null,[6,24],[6,48]]]],\n        [\"inline\",\"capitalize-word\",[[\"get\",\"period\",[\"loc\",[null,[7,46],[7,52]]]]],[],[\"loc\",[null,[7,28],[7,54]]]],\n        [\"block\",\"if\",[[\"get\",\"upsell\",[\"loc\",[null,[8,10],[8,16]]]]],[],0,null,[\"loc\",[null,[8,4],[10,11]]]],\n        [\"block\",\"if\",[[\"get\",\"upsell\",[\"loc\",[null,[13,8],[13,14]]]]],[],1,2,[\"loc\",[null,[13,2],[17,9]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/components/custom-field', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 2,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"autofocus-input\",[],[\"placeholder\",[\"subexpr\",\"@mut\",[[\"get\",\"placeholder\",[\"loc\",[null,[3,34],[3,45]]]]],[],[]],\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"label\",[\"loc\",[null,[3,52],[3,57]]]]],[],[]],\"class\",\"js-label\"],[\"loc\",[null,[3,4],[3,76]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 6,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"placeholder\",[\"subexpr\",\"@mut\",[[\"get\",\"placeholder\",[\"loc\",[null,[5,24],[5,35]]]]],[],[]],\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"label\",[\"loc\",[null,[5,42],[5,47]]]]],[],[]],\"class\",\"js-label\"],[\"loc\",[null,[5,4],[5,66]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 15,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          Required? \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"link-to\",[\"\",\"notifications\"],[\"class\",\"icon-fieldAddedBy\",\"title\",\"Added by Host Notifications\"],[\"loc\",[null,[16,20],[16,112]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 19,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          Required?\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 8,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 22,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"right\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"label\");\n          dom.setAttribute(el2,\"class\",\"checkbox\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"label\");\n          dom.setAttribute(el3,\"class\",\"toggle toggle--tiny\");\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"span\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1, 1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element4, [1]),1,1);\n          morphs[1] = dom.createMorphAt(element4,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"required\",[\"loc\",[null,[12,42],[12,50]]]]],[],[]],\"tabindex\",\"-1\"],[\"loc\",[null,[12,10],[12,66]]]],\n          [\"block\",\"if\",[[\"get\",\"displayTooltip\",[\"loc\",[null,[15,14],[15,28]]]]],[],0,1,[\"loc\",[null,[15,8],[19,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 22,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 24,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"right label checkbox\");\n          dom.setAttribute(el1,\"style\",\"margin-top:4px;\");\n          var el2 = dom.createTextNode(\"Required \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          dom.setAttribute(el2,\"href\",\"#\");\n          dom.setAttribute(el2,\"class\",\"icon-fieldAddedBy\");\n          dom.setAttribute(el2,\"title\",\"Added by Multiple Visitor Types\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element3 = dom.childAt(fragment, [1, 1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element3);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"goToAnchor\",\"ipad\",\"#multiple-visitor-types\"],[],[\"loc\",[null,[23,150],[23,207]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 26,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 28,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"action\");\n          var el2 = dom.createTextNode(\"×\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element2);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"delete\"],[],[\"loc\",[null,[27,24],[27,43]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 31,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 34,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"p\");\n            dom.setAttribute(el1,\"class\",\"h5 m0\");\n            var el2 = dom.createElement(\"a\");\n            var el3 = dom.createTextNode(\"Switch to individual inputs\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [3, 0]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            morphs[1] = dom.createElementMorph(element1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"textarea\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"textOptions\",[\"loc\",[null,[32,23],[32,34]]]]],[],[]],\"placeholder\",\"Paste a list of dropdown options. One option per line.\",\"class\",\"mt2\"],[\"loc\",[null,[32,6],[32,117]]]],\n            [\"element\",\"action\",[\"toggleTextarea\"],[],[\"loc\",[null,[33,26],[33,53]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 40,\n                      \"column\": 10\n                    },\n                    \"end\": {\n                      \"line\": 46,\n                      \"column\": 10\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"            \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createComment(\"\");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                  return morphs;\n                },\n                statements: [\n                  [\"inline\",\"dropdown-field\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"option.value\",[\"loc\",[null,[45,35],[45,47]]]]],[],[]],\"draggable\",true],[\"loc\",[null,[45,12],[45,64]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 39,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 47,\n                    \"column\": 8\n                  }\n                },\n                \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"sortable-item\",[],[\"tagName\",\"li\",\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"option\",[\"loc\",[null,[42,18],[42,24]]]]],[],[]],\"group\",[\"subexpr\",\"@mut\",[[\"get\",\"group\",[\"loc\",[null,[43,18],[43,23]]]]],[],[]],\"handle\",\".dropdownField\"],0,null,[\"loc\",[null,[40,10],[46,28]]]]\n              ],\n              locals: [\"option\"],\n              templates: [child0]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 35,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 49,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(2);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"each\",[[\"get\",\"options\",[\"loc\",[null,[39,16],[39,23]]]]],[\"key\",\"@index\"],0,null,[\"loc\",[null,[39,8],[47,17]]]],\n              [\"inline\",\"dropdown-field\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"value\",[\"loc\",[null,[48,31],[48,36]]]]],[],[]],\"key-press\",\"insertOption\"],[\"loc\",[null,[48,8],[48,63]]]]\n            ],\n            locals: [\"group\"],\n            templates: [child0]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 34,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 51,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"p\");\n            dom.setAttribute(el1,\"class\",\"h5 m0\");\n            var el2 = dom.createElement(\"br\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"a\");\n            var el3 = dom.createTextNode(\"Add multiple options at once\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [2, 1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            morphs[1] = dom.createElementMorph(element0);\n            dom.insertBoundary(fragment, 0);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"sortable-group\",[],[\"tagName\",\"ol\",\"class\",\"dropdownFields\",\"onChange\",\"reorderOptions\"],0,null,[\"loc\",[null,[35,6],[49,25]]]],\n            [\"element\",\"action\",[\"toggleTextarea\"],[],[\"loc\",[null,[50,30],[50,57]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 30,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 52,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"isTextarea\",[\"loc\",[null,[31,10],[31,20]]]]],[],0,1,[\"loc\",[null,[31,4],[51,11]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 54,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/custom-field.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"field\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element5 = dom.childAt(fragment, [0]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createMorphAt(element5,1,1);\n        morphs[1] = dom.createMorphAt(element5,3,3);\n        morphs[2] = dom.createMorphAt(element5,5,5);\n        morphs[3] = dom.createMorphAt(element5,7,7);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"autofocus\",[\"loc\",[null,[2,8],[2,17]]]]],[],0,1,[\"loc\",[null,[2,2],[6,9]]]],\n        [\"block\",\"if\",[[\"get\",\"isRequiredToggleable\",[\"loc\",[null,[8,8],[8,28]]]]],[],2,3,[\"loc\",[null,[8,2],[24,9]]]],\n        [\"block\",\"unless\",[[\"get\",\"isSystemAddedCustomField\",[\"loc\",[null,[26,12],[26,36]]]]],[],4,null,[\"loc\",[null,[26,2],[28,13]]]],\n        [\"block\",\"if\",[[\"get\",\"isDropdown\",[\"loc\",[null,[30,8],[30,18]]]]],[],5,null,[\"loc\",[null,[30,2],[52,9]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5]\n    };\n  }()));\n\n});","define('garaje/templates/components/day-cell', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/day-cell.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"span\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createAttrMorph(element0, 'class');\n        morphs[1] = dom.createMorphAt(element0,0,0);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"hasEntries\",[\"loc\",[null,[1,18],[1,28]]]],\"entries\"],[],[\"loc\",[null,[1,13],[1,40]]]],\" \",[\"subexpr\",\"if\",[[\"get\",\"hasInvites\",[\"loc\",[null,[1,46],[1,56]]]],\"invites\"],[],[\"loc\",[null,[1,41],[1,68]]]]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"date\",[\"loc\",[null,[1,86],[1,90]]]],\"D\"],[],[\"loc\",[null,[1,70],[1,96]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/dropdown-field', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 73\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/dropdown-field.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"value\",[\"loc\",[null,[1,14],[1,19]]]]],[],[]],\"placeholder\",\"Dropdown option\",\"key-up\",\"insertOption\"],[\"loc\",[null,[1,0],[1,73]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/dropdown-option', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/dropdown-option.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"value\",[\"loc\",[null,[1,0],[1,9]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/employee-csv-uploader', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 32,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 38,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/employee-csv-uploader.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"tr\");\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n            morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n            morphs[2] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"object.name\",[\"loc\",[null,[34,14],[34,29]]]],\n            [\"content\",\"object.email\",[\"loc\",[null,[35,14],[35,30]]]],\n            [\"content\",\"object.phone\",[\"loc\",[null,[36,14],[36,30]]]]\n          ],\n          locals: [\"object\"],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 19,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 42,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/employee-csv-uploader.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mt3 rounded p3 bg-yellow-10 center\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h2\");\n          var el3 = dom.createTextNode(\"Review your employee list carefully\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"py2\");\n          var el3 = dom.createTextNode(\"If you see any mistakes or wish to make changes, upload an updated CSV file.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          dom.setAttribute(el2,\"class\",\"btn btn--green\");\n          var el3 = dom.createTextNode(\"Import \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"table\");\n          dom.setAttribute(el2,\"class\",\"mt3 left-align table-light\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"tr\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"th\");\n          var el5 = dom.createTextNode(\"Full Name\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"th\");\n          var el5 = dom.createTextNode(\"Email Address\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"th\");\n          var el5 = dom.createTextNode(\"Phone Number\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var element2 = dom.childAt(element1, [5]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createElementMorph(element2);\n          morphs[1] = dom.createMorphAt(element2,1,1);\n          morphs[2] = dom.createMorphAt(dom.childAt(element1, [7]),3,3);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"uploadCsvToServer\"],[],[\"loc\",[null,[23,7],[23,37]]]],\n          [\"inline\",\"pluralized-word\",[[\"get\",\"parsedObjects.length\",[\"loc\",[null,[23,86],[23,106]]]],\"Employee\"],[],[\"loc\",[null,[23,68],[23,119]]]],\n          [\"block\",\"each\",[[\"get\",\"parsedObjects\",[\"loc\",[null,[32,14],[32,27]]]]],[],0,null,[\"loc\",[null,[32,6],[38,15]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 42,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/employee-csv-uploader.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"fieldset\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"mt3 clearfix flex\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6 bg-blue-10 rounded flex flex-center mr3\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"uploadButton mx-auto\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"span\");\n        dom.setAttribute(el5,\"class\",\"btn btn--small btn--blue cursor-pointer\");\n        var el6 = dom.createTextNode(\"Select CSV file...\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5\");\n        var el5 = dom.createTextNode(\"Upload a CSV to mass import your \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\" employees.\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Tip:\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\" You can export a CSV from your ActiveDirectory or LDAP server, or create one manually. You might want to ask your HR department for this list.\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h5\");\n        dom.setAttribute(el4,\"class\",\"py1\");\n        var el5 = dom.createTextNode(\"Syntax:\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"code\");\n        var el5 = dom.createElement(\"span\");\n        dom.setAttribute(el5,\"style\",\"color:#2211a6;\");\n        var el6 = dom.createTextNode(\"Full Name\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\", \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"span\");\n        dom.setAttribute(el5,\"style\",\"color:#aa1151;\");\n        var el6 = dom.createTextNode(\"email@example.com\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\", \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"span\");\n        dom.setAttribute(el5,\"style\",\"color:#117700;\");\n        var el6 = dom.createTextNode(\"(555) 555-5555\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 mt1 grayDark\");\n        var el5 = dom.createTextNode(\"Email Address and Phone Number are optional.\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element3 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element3, [1, 1]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element3, [3, 1, 1]),0,0);\n        morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"csv-parse\",[],[\"action\",\"handleCsvResults\",\"toggleProcessing\",\"toggleProcessing\"],[\"loc\",[null,[5,8],[5,83]]]],\n        [\"content\",\"currentLocation.nameWithCompanyName\",[\"loc\",[null,[10,61],[10,100]]]],\n        [\"block\",\"if\",[[\"get\",\"parsedObjects\",[\"loc\",[null,[19,6],[19,19]]]]],[],0,null,[\"loc\",[null,[19,0],[42,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/entry-feed-item', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle p1\");\n          dom.setAttribute(el1,\"style\",\"width:70px\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"img\");\n          dom.setAttribute(el2,\"class\",\"rounded js-entry-feed-photo\");\n          dom.setAttribute(el2,\"width\",\"70\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element11 = dom.childAt(fragment, [1, 1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createAttrMorph(element11, 'src');\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"src\",[\"get\",\"thumbnailPath\",[\"loc\",[null,[3,53],[3,66]]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"m0\");\n          var el2 = dom.createElement(\"strong\");\n          var el3 = dom.createTextNode(\"Host:\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),2,2);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"content.hostName\",[\"loc\",[null,[10,43],[10,63]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 16,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 18,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"src\",\"/assets/images/red-x-small.svg\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" Not signed\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 18,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 20,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"src\",\"/assets/images/green-check-small.svg\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" Signed\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 14,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 22,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element10 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createAttrMorph(element10, 'class');\n          morphs[1] = dom.createMorphAt(element10,1,1);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"class\",[\"concat\",[\"table-cell border-bottom align-middle px2 grayDark lg-show-table-cell \",[\"subexpr\",\"if\",[[\"get\",\"content.agreementRefused\",[\"loc\",[null,[15,91],[15,115]]]],\"js-entry-agreement-refused\"],[],[\"loc\",[null,[15,86],[15,146]]]]]]],\n          [\"block\",\"if\",[[\"get\",\"content.agreementRefused\",[\"loc\",[null,[16,12],[16,36]]]]],[],0,1,[\"loc\",[null,[16,6],[20,13]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 25,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 27,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          var el2 = dom.createTextNode(\"SMS \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"br\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element8 = dom.childAt(fragment, [1]);\n          var element9 = dom.childAt(fragment, [3]);\n          var morphs = new Array(5);\n          morphs[0] = dom.createAttrMorph(element8, 'src');\n          morphs[1] = dom.createAttrMorph(element8, 'class');\n          morphs[2] = dom.createAttrMorph(element9, 'class');\n          morphs[3] = dom.createMorphAt(element9,1,1);\n          morphs[4] = dom.createMorphAt(element9,2,2);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"src\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"smsSent\",[\"loc\",[null,[26,21],[26,28]]]],[\"get\",\"successImgPath\",[\"loc\",[null,[26,29],[26,43]]]]],[],[\"loc\",[null,[26,16],[26,45]]]],[\"subexpr\",\"if\",[[\"get\",\"smsFailed\",[\"loc\",[null,[26,50],[26,59]]]],[\"get\",\"failImgPath\",[\"loc\",[null,[26,60],[26,71]]]]],[],[\"loc\",[null,[26,45],[26,73]]]],[\"subexpr\",\"if\",[[\"get\",\"smsSending\",[\"loc\",[null,[26,78],[26,88]]]],[\"get\",\"sendingImgPath\",[\"loc\",[null,[26,89],[26,103]]]]],[],[\"loc\",[null,[26,73],[26,105]]]],[\"subexpr\",\"if\",[[\"get\",\"smsNotSent\",[\"loc\",[null,[26,110],[26,120]]]],[\"get\",\"notSentImgPath\",[\"loc\",[null,[26,121],[26,135]]]]],[],[\"loc\",[null,[26,105],[26,137]]]]]]],\n          [\"attribute\",\"class\",[\"concat\",[\"js-sms-status \",[\"subexpr\",\"if\",[[\"get\",\"smsSending\",[\"loc\",[null,[26,165],[26,175]]]],\"sendingNow\"],[],[\"loc\",[null,[26,160],[26,190]]]]]]],\n          [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"smsFailed\",[\"loc\",[null,[26,211],[26,220]]]],\"red\"],[],[\"loc\",[null,[26,206],[26,228]]]]]]],\n          [\"inline\",\"if\",[[\"get\",\"smsNotSent\",[\"loc\",[null,[26,239],[26,249]]]],\"not sent\"],[],[\"loc\",[null,[26,234],[26,262]]]],\n          [\"inline\",\"if\",[[\"get\",\"smsFailed\",[\"loc\",[null,[26,267],[26,276]]]],\"failed\"],[],[\"loc\",[null,[26,262],[26,287]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 28,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 30,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"class\",\"js-email-status\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          var el2 = dom.createTextNode(\"Email \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"br\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element6 = dom.childAt(fragment, [1]);\n          var element7 = dom.childAt(fragment, [3]);\n          var morphs = new Array(4);\n          morphs[0] = dom.createAttrMorph(element6, 'src');\n          morphs[1] = dom.createAttrMorph(element7, 'class');\n          morphs[2] = dom.createMorphAt(element7,1,1);\n          morphs[3] = dom.createMorphAt(element7,2,2);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"src\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"emailSent\",[\"loc\",[null,[29,21],[29,30]]]],[\"get\",\"successImgPath\",[\"loc\",[null,[29,31],[29,45]]]]],[],[\"loc\",[null,[29,16],[29,47]]]],[\"subexpr\",\"if\",[[\"get\",\"emailFailed\",[\"loc\",[null,[29,52],[29,63]]]],[\"get\",\"failImgPath\",[\"loc\",[null,[29,64],[29,75]]]]],[],[\"loc\",[null,[29,47],[29,77]]]],[\"subexpr\",\"if\",[[\"get\",\"emailNotSent\",[\"loc\",[null,[29,82],[29,94]]]],[\"get\",\"notSentImgPath\",[\"loc\",[null,[29,95],[29,109]]]]],[],[\"loc\",[null,[29,77],[29,111]]]]]]],\n          [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"emailFailed\",[\"loc\",[null,[29,156],[29,167]]]],\"red\"],[],[\"loc\",[null,[29,151],[29,175]]]]]]],\n          [\"inline\",\"if\",[[\"get\",\"emailNotSent\",[\"loc\",[null,[29,188],[29,200]]]],\"not sent\"],[],[\"loc\",[null,[29,183],[29,213]]]],\n          [\"inline\",\"if\",[[\"get\",\"emailFailed\",[\"loc\",[null,[29,218],[29,229]]]],\"failed\"],[],[\"loc\",[null,[29,213],[29,240]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 31,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 33,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"class\",\"js-slack-status\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          var el2 = dom.createTextNode(\"Slack DM \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"br\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var element5 = dom.childAt(fragment, [3]);\n          var morphs = new Array(4);\n          morphs[0] = dom.createAttrMorph(element4, 'src');\n          morphs[1] = dom.createAttrMorph(element5, 'class');\n          morphs[2] = dom.createMorphAt(element5,1,1);\n          morphs[3] = dom.createMorphAt(element5,2,2);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"src\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"slackSent\",[\"loc\",[null,[32,21],[32,30]]]],[\"get\",\"successImgPath\",[\"loc\",[null,[32,31],[32,45]]]]],[],[\"loc\",[null,[32,16],[32,47]]]],[\"subexpr\",\"if\",[[\"get\",\"slackFailed\",[\"loc\",[null,[32,52],[32,63]]]],[\"get\",\"failImgPath\",[\"loc\",[null,[32,64],[32,75]]]]],[],[\"loc\",[null,[32,47],[32,77]]]],[\"subexpr\",\"if\",[[\"get\",\"slackNotSent\",[\"loc\",[null,[32,82],[32,94]]]],[\"get\",\"notSentImgPath\",[\"loc\",[null,[32,95],[32,109]]]]],[],[\"loc\",[null,[32,77],[32,111]]]]]]],\n          [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"slackFailed\",[\"loc\",[null,[32,156],[32,167]]]],\"red\"],[],[\"loc\",[null,[32,151],[32,175]]]]]]],\n          [\"inline\",\"if\",[[\"get\",\"slackNotSent\",[\"loc\",[null,[32,191],[32,203]]]],\"not sent\"],[],[\"loc\",[null,[32,186],[32,216]]]],\n          [\"inline\",\"if\",[[\"get\",\"slackFailed\",[\"loc\",[null,[32,221],[32,232]]]],\"failed\"],[],[\"loc\",[null,[32,216],[32,243]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child6 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 34,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 36,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"class\",\"js-hipchat-status\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          var el2 = dom.createTextNode(\"HipChat DM \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var element3 = dom.childAt(fragment, [3]);\n          var morphs = new Array(4);\n          morphs[0] = dom.createAttrMorph(element2, 'src');\n          morphs[1] = dom.createAttrMorph(element3, 'class');\n          morphs[2] = dom.createMorphAt(element3,1,1);\n          morphs[3] = dom.createMorphAt(element3,2,2);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"src\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"hipchatSent\",[\"loc\",[null,[35,21],[35,32]]]],[\"get\",\"successImgPath\",[\"loc\",[null,[35,33],[35,47]]]]],[],[\"loc\",[null,[35,16],[35,49]]]],[\"subexpr\",\"if\",[[\"get\",\"hipchatFailed\",[\"loc\",[null,[35,54],[35,67]]]],[\"get\",\"failImgPath\",[\"loc\",[null,[35,68],[35,79]]]]],[],[\"loc\",[null,[35,49],[35,81]]]],[\"subexpr\",\"if\",[[\"get\",\"hipchatNotSent\",[\"loc\",[null,[35,86],[35,100]]]],[\"get\",\"notSentImgPath\",[\"loc\",[null,[35,101],[35,115]]]]],[],[\"loc\",[null,[35,81],[35,117]]]]]]],\n          [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"hipchatFailed\",[\"loc\",[null,[35,164],[35,177]]]],\"red\"],[],[\"loc\",[null,[35,159],[35,185]]]]]]],\n          [\"inline\",\"if\",[[\"get\",\"hipchatNotSent\",[\"loc\",[null,[35,203],[35,217]]]],\"not sent\"],[],[\"loc\",[null,[35,198],[35,230]]]],\n          [\"inline\",\"if\",[[\"get\",\"hipchatFailed\",[\"loc\",[null,[35,235],[35,248]]]],\"failed\"],[],[\"loc\",[null,[35,230],[35,259]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child7 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 41,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 41,\n              \"column\": 70\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"moment-format\",[[\"get\",\"content.signInTime\",[\"loc\",[null,[41,36],[41,54]]]],\"MMM D, YYYY\"],[],[\"loc\",[null,[41,20],[41,70]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child8 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 48,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 48,\n                \"column\": 75\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"moment-format\",[[\"get\",\"content.signOutTime\",[\"loc\",[null,[48,40],[48,59]]]],\"MMM D, YYYY\"],[],[\"loc\",[null,[48,24],[48,75]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 45,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 50,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"js-entry-feed-sign-out-time\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(element1,1,1);\n          morphs[1] = dom.createMorphAt(element1,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"moment-format\",[[\"get\",\"content.signOutTime\",[\"loc\",[null,[47,24],[47,43]]]],\"h:mm a\"],[],[\"loc\",[null,[47,8],[47,54]]]],\n          [\"block\",\"if\",[[\"get\",\"fullDate\",[\"loc\",[null,[48,14],[48,22]]]]],[],0,null,[\"loc\",[null,[48,8],[48,82]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child9 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 51,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 53,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"btn btn--small btn--blueHoverFill js-entry-feed-sign-out\");\n          var el2 = dom.createTextNode(\"Sign out\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element0);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"signMeOut\"],[\"bubbles\",false],[\"loc\",[null,[52,9],[52,45]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\",\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 55,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/entry-feed-item.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle px2 py1 grayDark js-entry-feed-item\");\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h4\");\n        dom.setAttribute(el2,\"class\",\"js-entry-feed-item-h4 grayDarker\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"  \");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle px2 grayDark lg-show-table-cell\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"  \");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle px2 grayDark right-align js-entry-feed-sign-in-time\");\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle center px2 grayDark\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"  \");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element12 = dom.childAt(fragment, [2]);\n        var element13 = dom.childAt(fragment, [6]);\n        var element14 = dom.childAt(fragment, [8]);\n        var element15 = dom.childAt(fragment, [10]);\n        var morphs = new Array(12);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        morphs[1] = dom.createMorphAt(dom.childAt(element12, [1]),0,0);\n        morphs[2] = dom.createMorphAt(element12,3,3);\n        morphs[3] = dom.createMorphAt(fragment,4,4,contextualElement);\n        morphs[4] = dom.createMorphAt(element13,1,1);\n        morphs[5] = dom.createMorphAt(element13,2,2);\n        morphs[6] = dom.createMorphAt(element13,3,3);\n        morphs[7] = dom.createMorphAt(element13,4,4);\n        morphs[8] = dom.createMorphAt(element14,1,1);\n        morphs[9] = dom.createMorphAt(element14,3,3);\n        morphs[10] = dom.createMorphAt(element15,1,1);\n        morphs[11] = dom.createMorphAt(element15,2,2);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"hasPhoto\",[\"loc\",[null,[1,8],[1,16]]]]],[],0,null,[\"loc\",[null,[1,2],[5,9]]]],\n        [\"content\",\"content.fullName\",[\"loc\",[null,[8,49],[8,69]]]],\n        [\"block\",\"if\",[[\"get\",\"content.hostName\",[\"loc\",[null,[9,10],[9,26]]]]],[],1,null,[\"loc\",[null,[9,4],[11,11]]]],\n        [\"block\",\"if\",[[\"get\",\"ndaEnabled\",[\"loc\",[null,[14,8],[14,18]]]]],[],2,null,[\"loc\",[null,[14,2],[22,9]]]],\n        [\"block\",\"unless\",[[\"get\",\"smsDisabled\",[\"loc\",[null,[25,14],[25,25]]]]],[],3,null,[\"loc\",[null,[25,4],[27,15]]]],\n        [\"block\",\"unless\",[[\"get\",\"emailDisabled\",[\"loc\",[null,[28,14],[28,27]]]]],[],4,null,[\"loc\",[null,[28,4],[30,15]]]],\n        [\"block\",\"unless\",[[\"get\",\"slackDisabled\",[\"loc\",[null,[31,14],[31,27]]]]],[],5,null,[\"loc\",[null,[31,4],[33,15]]]],\n        [\"block\",\"unless\",[[\"get\",\"hipchatDisabled\",[\"loc\",[null,[34,14],[34,29]]]]],[],6,null,[\"loc\",[null,[34,4],[36,15]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"content.signInTime\",[\"loc\",[null,[40,20],[40,38]]]],\"h:mm a\"],[],[\"loc\",[null,[40,4],[40,49]]]],\n        [\"block\",\"if\",[[\"get\",\"fullDate\",[\"loc\",[null,[41,10],[41,18]]]]],[],7,null,[\"loc\",[null,[41,4],[41,77]]]],\n        [\"block\",\"if\",[[\"get\",\"content.signOutTime\",[\"loc\",[null,[45,10],[45,29]]]]],[],8,null,[\"loc\",[null,[45,4],[50,11]]]],\n        [\"block\",\"unless\",[[\"get\",\"content.signOutTime\",[\"loc\",[null,[51,14],[51,33]]]]],[],9,null,[\"loc\",[null,[51,4],[53,15]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5, child6, child7, child8, child9]\n    };\n  }()));\n\n});","define('garaje/templates/components/envoy-2up-calendar', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 38,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/envoy-2up-calendar.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"span\");\n        dom.setAttribute(el1,\"class\",\"dashboardCalendar relative\");\n        dom.setAttribute(el1,\"style\",\"width: 380px;background-color:white;\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"button\");\n        dom.setAttribute(el3,\"class\",\"btn btn--small btn--outlineFill js-datepicker-open analyticsDatePicker\");\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" to \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"style\",\"background-color:white\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6\");\n        dom.setAttribute(el3,\"style\",\"padding:0 10px;background:white;\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"dashboardCalendar-header\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"header\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"i\");\n        dom.setAttribute(el6,\"class\",\"previous js-previous-month-button\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.setAttribute(el6,\"class\",\"js-first-month-header\");\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"clear\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6\");\n        dom.setAttribute(el3,\"style\",\"padding:0 10px;background:white;\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"dashboardCalendar-header\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"header\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.setAttribute(el6,\"class\",\"js-second-month-header\");\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"i\");\n        dom.setAttribute(el6,\"class\",\"next js-next-month-button\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"clear\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [1, 1]);\n        var element2 = dom.childAt(element0, [3]);\n        var element3 = dom.childAt(element2, [1]);\n        var element4 = dom.childAt(element3, [1, 1]);\n        var element5 = dom.childAt(element4, [1]);\n        var element6 = dom.childAt(element2, [3]);\n        var element7 = dom.childAt(element6, [1, 1]);\n        var element8 = dom.childAt(element7, [3]);\n        var morphs = new Array(10);\n        morphs[0] = dom.createElementMorph(element1);\n        morphs[1] = dom.createMorphAt(element1,0,0);\n        morphs[2] = dom.createMorphAt(element1,2,2);\n        morphs[3] = dom.createAttrMorph(element2, 'class');\n        morphs[4] = dom.createElementMorph(element5);\n        morphs[5] = dom.createMorphAt(dom.childAt(element4, [3]),0,0);\n        morphs[6] = dom.createMorphAt(element3,3,3);\n        morphs[7] = dom.createMorphAt(dom.childAt(element7, [1]),0,0);\n        morphs[8] = dom.createElementMorph(element8);\n        morphs[9] = dom.createMorphAt(element6,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"beginStartDateSelection\"],[],[\"loc\",[null,[3,12],[3,48]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"startDate\",[\"loc\",[null,[3,144],[3,153]]]],\"MM/DD/YYYY\"],[],[\"loc\",[null,[3,128],[3,168]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"endDate\",[\"loc\",[null,[3,188],[3,195]]]],\"MM/DD/YYYY\"],[],[\"loc\",[null,[3,172],[3,210]]]],\n        [\"attribute\",\"class\",[\"concat\",[[\"get\",\"calendarWrapperClass\",[\"loc\",[null,[5,16],[5,36]]]],\" calendar-popover\"]]],\n        [\"element\",\"action\",[\"goBackOneMonth\"],[],[\"loc\",[null,[9,55],[9,82]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"date\",[\"loc\",[null,[10,62],[10,66]]]],\"MMMM\"],[],[\"loc\",[null,[10,46],[10,75]]]],\n        [\"inline\",\"calendar-grid\",[],[\"currentMonth\",[\"subexpr\",\"@mut\",[[\"get\",\"currentMonth\",[\"loc\",[null,[15,21],[15,33]]]]],[],[]],\"selectedStartDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedStartDate\",[\"loc\",[null,[16,26],[16,43]]]]],[],[]],\"selectedEndDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedEndDate\",[\"loc\",[null,[17,24],[17,39]]]]],[],[]],\"hideTrailingDayCells\",true,\"action\",\"selectDate\"],[\"loc\",[null,[14,6],[19,29]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"nextMonth\",[\"loc\",[null,[24,63],[24,72]]]],\"MMMM\"],[],[\"loc\",[null,[24,47],[24,81]]]],\n        [\"element\",\"action\",[\"goToNextMonth\"],[],[\"loc\",[null,[25,47],[25,73]]]],\n        [\"inline\",\"calendar-grid\",[],[\"currentMonth\",[\"subexpr\",\"@mut\",[[\"get\",\"nextMonth\",[\"loc\",[null,[30,21],[30,30]]]]],[],[]],\"selectedStartDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedStartDate\",[\"loc\",[null,[31,26],[31,43]]]]],[],[]],\"selectedEndDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedEndDate\",[\"loc\",[null,[32,24],[32,39]]]]],[],[]],\"hideLeadingDayCells\",true,\"action\",\"selectDate\"],[\"loc\",[null,[29,6],[34,29]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/envoy-calendar', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 12,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/envoy-calendar.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"dashboardCalendar\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"dashboardCalendar-header\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"header\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"i\");\n        dom.setAttribute(el4,\"class\",\"previous\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"span\");\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"i\");\n        dom.setAttribute(el4,\"class\",\"next\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"clear\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [1, 1]);\n        var element2 = dom.childAt(element1, [1]);\n        var element3 = dom.childAt(element1, [5]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createElementMorph(element2);\n        morphs[1] = dom.createMorphAt(dom.childAt(element1, [3]),0,0);\n        morphs[2] = dom.createElementMorph(element3);\n        morphs[3] = dom.createMorphAt(element0,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"goBackOneMonth\"],[],[\"loc\",[null,[4,26],[4,53]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"date\",[\"loc\",[null,[5,28],[5,32]]]],\"MMMM\"],[],[\"loc\",[null,[5,12],[5,41]]]],\n        [\"element\",\"action\",[\"goToNextMonth\"],[],[\"loc\",[null,[6,22],[6,48]]]],\n        [\"inline\",\"calendar-grid\",[],[\"currentMonth\",[\"subexpr\",\"@mut\",[[\"get\",\"currentMonth\",[\"loc\",[null,[10,31],[10,43]]]]],[],[]],\"selectedDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedDate\",[\"loc\",[null,[10,57],[10,69]]]]],[],[]],\"events\",[\"subexpr\",\"@mut\",[[\"get\",\"events\",[\"loc\",[null,[10,77],[10,83]]]]],[],[]],\"invites\",[\"subexpr\",\"@mut\",[[\"get\",\"invites\",[\"loc\",[null,[10,92],[10,99]]]]],[],[]],\"action\",\"selectDate\"],[\"loc\",[null,[10,2],[10,121]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/flash-message', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 59\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/flash-message.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"p\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"span\");\n        dom.setAttribute(el1,\"class\",\"dismiss\");\n        var el2 = dom.createTextNode(\"×\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [2]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),0,0);\n        morphs[1] = dom.createElementMorph(element0);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"message\",[\"loc\",[null,[1,3],[1,14]]]],\n        [\"element\",\"action\",[\"hideFlash\"],[],[\"loc\",[null,[2,6],[2,28]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/google-maps', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/google-maps.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"mapCanvas\");\n        dom.setAttribute(el1,\"style\",\"width:100%;height:350px\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/granular-address-lookup-fields-settings', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/granular-address-lookup-fields-settings.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"inputAddressErrorMessage\",[\"loc\",[null,[4,6],[4,34]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/granular-address-lookup-fields-settings.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      Address\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 32,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/granular-address-lookup-fields-settings.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"columns\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"label\");\n        dom.setAttribute(el2,\"for\",\"gal-address-settings\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"js-rest-of-address-form columns no-padding\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"row\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [1]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createAttrMorph(element1, 'class');\n        morphs[1] = dom.createMorphAt(element1,1,1);\n        morphs[2] = dom.createMorphAt(element0,3,3);\n        morphs[3] = dom.createMorphAt(dom.childAt(fragment, [2, 1, 1]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"concat\",[\"addressLabel \",[\"subexpr\",\"if\",[[\"get\",\"inputAddressErrorMessage\",[\"loc\",[null,[2,61],[2,85]]]],\"error-description\"],[],[\"loc\",[null,[2,56],[2,107]]]]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"inputAddressErrorMessage\",[\"loc\",[null,[3,17],[3,41]]]]],[\"class\",\"js-password\"],0,1,[\"loc\",[null,[3,4],[7,18]]]],\n        [\"inline\",\"address-input\",[],[\"id\",\"gal-address-settings\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"inputAddress\",[\"loc\",[null,[11,8],[11,20]]]]],[],[]],\"on-select\",\"updateAddress\",\"key-press\",\"fadeMap\",\"class\",[\"subexpr\",\"concat\",[\"location-address\",\" \",[\"subexpr\",\"if\",[[\"get\",\"inputAddressErrorMessage\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[9,2],[15,4]]]],\n        [\"inline\",\"labeled-input\",[],[\"inputClass\",\"js-addressLine2\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.addressLine_2\",[\"loc\",[null,[23,12],[23,31]]]]],[],[]],\"label\",\"Suite #\",\"errorLabel\",\"This is a Required Field\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.name\",[\"loc\",[null,[26,16],[26,33]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[27,16],[27,25]]]]],[],[]]],[\"loc\",[null,[21,6],[28,8]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/granular-address-lookup-fields', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/granular-address-lookup-fields.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"inputAddressErrorMessage\",[\"loc\",[null,[4,6],[4,34]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/granular-address-lookup-fields.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      Address\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 17,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 30,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/granular-address-lookup-fields.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"row\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"columns\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"labeled-input\",[],[\"inputClass\",\"js-addressLine2\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.addressLine_2\",[\"loc\",[null,[22,12],[22,31]]]]],[],[]],\"label\",\"Suite #\",\"errorLabel\",\"This is a Required Field\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.name\",[\"loc\",[null,[25,16],[25,33]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[26,16],[26,25]]]]],[],[]]],[\"loc\",[null,[20,6],[27,8]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 31,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/granular-address-lookup-fields.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"columns\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"label\");\n        dom.setAttribute(el2,\"for\",\"gal-address\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [1]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createAttrMorph(element1, 'class');\n        morphs[1] = dom.createMorphAt(element1,1,1);\n        morphs[2] = dom.createMorphAt(element0,3,3);\n        morphs[3] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"concat\",[\"addressLabel \",[\"subexpr\",\"if\",[[\"get\",\"inputAddressErrorMessage\",[\"loc\",[null,[2,52],[2,76]]]],\"error-description\"],[],[\"loc\",[null,[2,47],[2,98]]]]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"inputAddressErrorMessage\",[\"loc\",[null,[3,17],[3,41]]]]],[\"class\",\"js-password\"],0,1,[\"loc\",[null,[3,4],[7,18]]]],\n        [\"inline\",\"address-input\",[],[\"id\",\"gal-address\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"inputAddress\",[\"loc\",[null,[11,8],[11,20]]]]],[],[]],\"on-select\",\"addressSelected\",\"class\",[\"subexpr\",\"concat\",[\"location-address\",\" \",[\"subexpr\",\"if\",[[\"get\",\"inputAddressErrorMessage\",[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[9,2],[14,4]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"hasAddress\",[\"loc\",[null,[17,13],[17,23]]]]],[\"class\",\"js-rest-of-address-form columns reduced-padding\"],2,null,[\"loc\",[null,[17,0],[30,14]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/components/ic-menu-css', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 54,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/ic-menu-css.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createTextNode(\"ic-menu {\\n  display: inline-block;\\n}\\n\\nic-menu-list {\\n  position: absolute;\\n  display: none;\\n}\\n\\nic-menu-list[aria-expanded=\\\"true\\\"] {\\n  display: block;\\n}\\n\\nic-menu-list {\\n  outline: none;\\n  background: #fff;\\n  border: 1px solid #aaa;\\n  border-radius: 3px;\\n  box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.25);\\n  list-style-type: none;\\n  padding: 2px 0px;\\n  font-family: \\\"Lucida Grande\\\", \\\"Arial\\\", sans-serif;\\n  font-size: 12px;\\n}\\n\\nic-menu-item {\\n  display: block;\\n  padding: 4px 20px;\\n  cursor: default;\\n  white-space: nowrap;\\n}\\n\\n\\nic-menu-item:focus {\\n  background: #3879D9;\\n  color: #fff;\\n  outline: none;\\n}\\n\\nic-menu-item[aria-disabled=\\\"true\\\"] {\\n  color: #999;\\n}\\n\\nic-menu-item[aria-disabled=\\\"true\\\"]:focus {\\n  background: #ccc;\\n  color: #000;\\n}\\n\\nic-menu-item a {\\n  color: inherit;\\n  text-decoration: none;\\n}\\n\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/ic-menu-list', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/ic-menu-list.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"yield\",[[\"get\",\"this\",[\"loc\",[null,[1,8],[1,12]]]]],[],[\"loc\",[null,[1,0],[1,14]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/ic-menu-manager', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/ic-menu-manager.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"yield\",[[\"get\",\"this\",[\"loc\",[null,[1,8],[1,12]]]]],[],[\"loc\",[null,[1,0],[1,14]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/ic-menu', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/ic-menu.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"yield\",[[\"get\",\"this\",[\"loc\",[null,[1,8],[1,12]]]]],[],[\"loc\",[null,[1,0],[1,14]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/inline-loading-spinner', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 8,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/inline-loading-spinner.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          dom.setNamespace(\"http://www.w3.org/2000/svg\");\n          var el1 = dom.createElement(\"svg\");\n          dom.setAttribute(el1,\"xmlns\",\"http://www.w3.org/2000/svg\");\n          dom.setAttribute(el1,\"viewBox\",\"0 0 32 32\");\n          dom.setAttribute(el1,\"width\",\"32\");\n          dom.setAttribute(el1,\"height\",\"32\");\n          dom.setAttribute(el1,\"fill\",\"white\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"path\");\n          dom.setAttribute(el2,\"opacity\",\".25\");\n          dom.setAttribute(el2,\"d\",\"M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"path\");\n          dom.setAttribute(el2,\"d\",\"M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"animateTransform\");\n          dom.setAttribute(el3,\"attributeName\",\"transform\");\n          dom.setAttribute(el3,\"type\",\"rotate\");\n          dom.setAttribute(el3,\"from\",\"0 16 16\");\n          dom.setAttribute(el3,\"to\",\"360 16 16\");\n          dom.setAttribute(el3,\"dur\",\"0.4s\");\n          dom.setAttribute(el3,\"repeatCount\",\"indefinite\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 8,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/inline-loading-spinner.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"showSpinner\",[\"loc\",[null,[1,6],[1,17]]]]],[],0,null,[\"loc\",[null,[1,0],[8,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/invite-feed-item', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"m0 js-invite-feed-item-message italic break-word\");\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"invite.privateNotes\",[\"loc\",[null,[10,64],[10,87]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 14,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 18,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle center px2 py1 grayDark lg-show-table-cell js-been-here-before-column\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"img\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var element2 = dom.childAt(element1, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createElementMorph(element1);\n          morphs[1] = dom.createAttrMorph(element2, 'src');\n          morphs[2] = dom.createAttrMorph(element2, 'class');\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"redirectToEnvoyWebInvite\"],[],[\"loc\",[null,[15,123],[15,160]]]],\n          [\"attribute\",\"src\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"invite.beenHereBefore\",[\"loc\",[null,[16,19],[16,40]]]],\"/assets/images/green-check-small.svg\"],[],[\"loc\",[null,[16,14],[16,81]]]]]]],\n          [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"invite.beenHereBefore\",[\"loc\",[null,[16,95],[16,116]]]],\"js-invite-been-here-before\"],[],[\"loc\",[null,[16,90],[16,147]]]]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 22,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 22,\n              \"column\": 76\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"moment-format\",[[\"get\",\"invite.expectedArrivalTime\",[\"loc\",[null,[22,34],[22,60]]]],\"MMM D, YYYY\"],[],[\"loc\",[null,[22,18],[22,76]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 28,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 28,\n                \"column\": 75\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"moment-format\",[[\"get\",\"invite.entry.signInTime\",[\"loc\",[null,[28,36],[28,59]]]],\"MMM D, YYYY\"],[],[\"loc\",[null,[28,20],[28,75]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 26,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 29,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"moment-format\",[[\"get\",\"invite.entry.signInTime\",[\"loc\",[null,[27,20],[27,43]]]],\"h:mm a\"],[],[\"loc\",[null,[27,4],[27,54]]]],\n          [\"block\",\"if\",[[\"get\",\"fullDate\",[\"loc\",[null,[28,10],[28,18]]]]],[],0,null,[\"loc\",[null,[28,4],[28,82]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 29,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 31,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    Not Yet\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 37,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 39,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"preregCheckbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"invite.isSelected\",[\"loc\",[null,[38,63],[38,80]]]]],[],[]]],[\"loc\",[null,[38,8],[38,82]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 39,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 41,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"a\");\n              dom.setAttribute(el1,\"class\",\"printPreRegistration js-printer\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [1]);\n              var morphs = new Array(1);\n              morphs[0] = dom.createElementMorph(element0);\n              return morphs;\n            },\n            statements: [\n              [\"element\",\"action\",[\"setIsSelectedTrue\"],[\"bubbles\",false],[\"loc\",[null,[40,11],[40,55]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 36,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 42,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"isSelectingPrint\",[\"loc\",[null,[37,12],[37,28]]]]],[],0,1,[\"loc\",[null,[37,6],[41,13]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 34,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 44,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle center px2 py1 grayDark lg-show-table-cell\");\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"unless\",[[\"get\",\"visitorIsSignedIn\",[\"loc\",[null,[36,14],[36,31]]]]],[],0,null,[\"loc\",[null,[36,4],[42,15]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 45,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/invite-feed-item.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h4\");\n        dom.setAttribute(el2,\"class\",\"js-invite-full-name grayDarker\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"m0\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"strong\");\n        var el4 = dom.createTextNode(\"Host:\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\" \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle px2 py1 grayDark\");\n        dom.setAttribute(el1,\"style\",\"max-width:300px\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom right-align align-middle px2 py1 grayDark js-expected-arrival-time\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom right-align align-middle px2 py1 grayDark\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element3 = dom.childAt(fragment, [0]);\n        var element4 = dom.childAt(fragment, [2]);\n        var element5 = dom.childAt(fragment, [6]);\n        var element6 = dom.childAt(fragment, [8]);\n        var morphs = new Array(13);\n        morphs[0] = dom.createAttrMorph(element3, 'class');\n        morphs[1] = dom.createElementMorph(element3);\n        morphs[2] = dom.createMorphAt(dom.childAt(element3, [1]),0,0);\n        morphs[3] = dom.createMorphAt(dom.childAt(element3, [3]),3,3);\n        morphs[4] = dom.createElementMorph(element4);\n        morphs[5] = dom.createMorphAt(element4,1,1);\n        morphs[6] = dom.createMorphAt(fragment,4,4,contextualElement);\n        morphs[7] = dom.createElementMorph(element5);\n        morphs[8] = dom.createMorphAt(element5,1,1);\n        morphs[9] = dom.createMorphAt(element5,3,3);\n        morphs[10] = dom.createElementMorph(element6);\n        morphs[11] = dom.createMorphAt(element6,1,1);\n        morphs[12] = dom.createMorphAt(fragment,10,10,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"concat\",[\"table-cell border-bottom align-middle px2 py1 grayDark \",[\"subexpr\",\"if\",[[\"get\",\"markVisitorAsSignedIn\",[\"loc\",[null,[1,72],[1,93]]]],\"preRegSignedIn\"],[],[\"loc\",[null,[1,67],[1,112]]]],\" \",[\"subexpr\",\"if\",[[\"get\",\"visitorIsSignedOut\",[\"loc\",[null,[1,118],[1,136]]]],\"preRegSignedOut\"],[],[\"loc\",[null,[1,113],[1,156]]]],\" \",[\"subexpr\",\"if\",[[\"get\",\"markVisitorAsLate\",[\"loc\",[null,[1,162],[1,179]]]],\"preRegNoShow\"],[],[\"loc\",[null,[1,157],[1,196]]]]]]],\n        [\"element\",\"action\",[\"redirectToEnvoyWebInvite\"],[],[\"loc\",[null,[1,198],[1,235]]]],\n        [\"content\",\"invite.fullName\",[\"loc\",[null,[2,45],[2,64]]]],\n        [\"content\",\"invite.inviterName\",[\"loc\",[null,[4,27],[4,49]]]],\n        [\"element\",\"action\",[\"redirectToEnvoyWebInvite\"],[],[\"loc\",[null,[8,92],[8,129]]]],\n        [\"block\",\"if\",[[\"get\",\"invite.privateNotes\",[\"loc\",[null,[9,8],[9,27]]]]],[],0,null,[\"loc\",[null,[9,2],[11,9]]]],\n        [\"block\",\"if\",[[\"get\",\"currentLocation.config.beenHereBefore\",[\"loc\",[null,[14,6],[14,43]]]]],[],1,null,[\"loc\",[null,[14,0],[18,7]]]],\n        [\"element\",\"action\",[\"redirectToEnvoyWebInvite\"],[],[\"loc\",[null,[20,105],[20,142]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"invite.expectedArrivalTime\",[\"loc\",[null,[21,18],[21,44]]]],\"h:mm a\"],[],[\"loc\",[null,[21,2],[21,55]]]],\n        [\"block\",\"if\",[[\"get\",\"fullDate\",[\"loc\",[null,[22,8],[22,16]]]]],[],2,null,[\"loc\",[null,[22,2],[22,83]]]],\n        [\"element\",\"action\",[\"redirectToEnvoyWebInvite\"],[],[\"loc\",[null,[25,80],[25,117]]]],\n        [\"block\",\"if\",[[\"get\",\"invite.entry.signInTime\",[\"loc\",[null,[26,8],[26,31]]]]],[],3,4,[\"loc\",[null,[26,2],[31,9]]]],\n        [\"block\",\"if\",[[\"get\",\"canPrintBadges\",[\"loc\",[null,[34,6],[34,20]]]]],[],5,null,[\"loc\",[null,[34,0],[44,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5]\n    };\n  }()));\n\n});","define('garaje/templates/components/ipad-custom-fields', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 19,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"action js-has-email\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element2 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element2);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"deleteEmailField\"],[],[\"loc\",[null,[18,41],[18,70]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 6,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 21,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"field notEditable\");\n          var el2 = dom.createTextNode(\"Your Email Address\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"right\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"label\");\n          dom.setAttribute(el3,\"class\",\"checkbox\");\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"label\");\n          dom.setAttribute(el4,\"class\",\"toggle toggle--tiny\");\n          var el5 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"span\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          Required?\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element3 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element3, [1, 1, 1]),1,1);\n          morphs[1] = dom.createMorphAt(element3,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-email-required\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.emailRequired\",[\"loc\",[null,[11,70],[11,89]]]]],[],[]]],[\"loc\",[null,[11,12],[11,91]]]],\n          [\"block\",\"if\",[[\"get\",\"isEmailOrPhoneRemovable\",[\"loc\",[null,[17,12],[17,35]]]]],[],0,null,[\"loc\",[null,[17,6],[19,13]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 34,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 36,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"action js-has-phone\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element0);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"deletePhoneField\"],[],[\"loc\",[null,[35,41],[35,70]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 23,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 38,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"field notEditable\");\n          var el2 = dom.createTextNode(\"Your Phone Number\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"right\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"label\");\n          dom.setAttribute(el3,\"class\",\"checkbox\");\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"label\");\n          dom.setAttribute(el4,\"class\",\"toggle toggle--tiny\");\n          var el5 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"span\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          Required?\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element1, [1, 1, 1]),1,1);\n          morphs[1] = dom.createMorphAt(element1,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-phone-required\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.phoneRequired\",[\"loc\",[null,[28,70],[28,89]]]]],[],[]]],[\"loc\",[null,[28,12],[28,91]]]],\n          [\"block\",\"if\",[[\"get\",\"isEmailOrPhoneRemovable\",[\"loc\",[null,[34,12],[34,35]]]]],[],0,null,[\"loc\",[null,[34,6],[36,13]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 47,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 65,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"custom-field\",[],[\"label\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.label\",[\"loc\",[null,[54,14],[54,31]]]]],[],[]],\"required\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.required\",[\"loc\",[null,[55,17],[55,37]]]]],[],[]],\"placeholder\",\"Give this field a name\",\"options\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.options\",[\"loc\",[null,[57,16],[57,35]]]]],[],[]],\"textOptions\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.textOptions\",[\"loc\",[null,[58,20],[58,43]]]]],[],[]],\"isDropdown\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.dropdown\",[\"loc\",[null,[59,19],[59,39]]]]],[],[]],\"autofocus\",[\"subexpr\",\"@mut\",[[\"get\",\"autofocus\",[\"loc\",[null,[60,18],[60,27]]]]],[],[]],\"isTextarea\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.isTextarea\",[\"loc\",[null,[61,19],[61,41]]]]],[],[]],\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"customField\",[\"loc\",[null,[62,14],[62,25]]]]],[],[]],\"toggleRecalculateContainer\",[\"subexpr\",\"action\",[\"toggleRecalculateContainer\"],[\"target\",[\"get\",\"group\",[\"loc\",[null,[63,79],[63,84]]]]],[\"loc\",[null,[63,35],[63,85]]]]],[\"loc\",[null,[53,8],[64,10]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 46,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 66,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"sortable-item\",[],[\"tagName\",\"div\",\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"customField\",[\"loc\",[null,[49,14],[49,25]]]]],[],[]],\"group\",[\"subexpr\",\"@mut\",[[\"get\",\"group\",[\"loc\",[null,[50,14],[50,19]]]]],[],[]],\"handle\",\".custom-field\"],0,null,[\"loc\",[null,[47,6],[65,24]]]]\n          ],\n          locals: [\"customField\"],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 40,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 68,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"each\",[[\"get\",\"model.customFields\",[\"loc\",[null,[46,12],[46,30]]]]],[\"key\",\"@index\"],0,null,[\"loc\",[null,[46,4],[66,13]]]]\n        ],\n        locals: [\"group\"],\n        templates: [child0]\n      };\n    }());\n    var child3 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 71,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 73,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      Add a new field\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 76,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 78,\n                    \"column\": 8\n                  }\n                },\n                \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"          Email\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 75,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 79,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[76,35],[76,45]]]]],[],[]],\"on-select\",\"addEmailField\",\"type\",\"text\"],0,null,[\"loc\",[null,[76,8],[78,25]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 81,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 83,\n                    \"column\": 8\n                  }\n                },\n                \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"          Phone\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 80,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 84,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[81,35],[81,45]]]]],[],[]],\"on-select\",\"addPhoneField\",\"type\",\"text\"],0,null,[\"loc\",[null,[81,8],[83,25]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child2 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 85,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 87,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        Text field\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child3 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 88,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 90,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        Dropdown\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 74,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 91,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(4);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            morphs[1] = dom.createMorphAt(fragment,1,1,contextualElement);\n            morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n            morphs[3] = dom.createMorphAt(fragment,3,3,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"unless\",[[\"get\",\"model.hasEmail\",[\"loc\",[null,[75,16],[75,30]]]]],[],0,null,[\"loc\",[null,[75,6],[79,17]]]],\n            [\"block\",\"unless\",[[\"get\",\"model.hasPhone\",[\"loc\",[null,[80,16],[80,30]]]]],[],1,null,[\"loc\",[null,[80,6],[84,17]]]],\n            [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[85,33],[85,43]]]]],[],[]],\"on-select\",\"addCustomField\",\"type\",\"text\"],2,null,[\"loc\",[null,[85,6],[87,23]]]],\n            [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[88,33],[88,43]]]]],[],[]],\"on-select\",\"addCustomField\",\"type\",\"dropdown\"],3,null,[\"loc\",[null,[88,6],[90,23]]]]\n          ],\n          locals: [\"parentList\"],\n          templates: [child0, child1, child2, child3]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 70,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 92,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,1,1,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"ic-menu-trigger\",[],[\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"parentMenu\",[\"loc\",[null,[71,34],[71,44]]]]],[],[]],\"class\",\"btn btn--small btn--blue\"],0,null,[\"loc\",[null,[71,4],[73,24]]]],\n          [\"block\",\"ic-menu-list\",[],[\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"parentMenu\",[\"loc\",[null,[74,31],[74,41]]]]],[],[]]],1,null,[\"loc\",[null,[74,4],[91,21]]]]\n        ],\n        locals: [\"parentMenu\"],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 94,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/ipad-custom-fields.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"bg-grayLighter border rounded p2 mt3 fieldSorter\");\n        dom.setAttribute(el1,\"style\",\"overflow:visible;\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"field notEditable\");\n        var el3 = dom.createTextNode(\"Your Full Name\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"right label checkbox\");\n        var el4 = dom.createTextNode(\"Required\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element4 = dom.childAt(fragment, [0]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createMorphAt(element4,3,3);\n        morphs[1] = dom.createMorphAt(element4,5,5);\n        morphs[2] = dom.createMorphAt(element4,7,7);\n        morphs[3] = dom.createMorphAt(element4,9,9);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"model.hasEmail\",[\"loc\",[null,[6,8],[6,22]]]]],[],0,null,[\"loc\",[null,[6,2],[21,9]]]],\n        [\"block\",\"if\",[[\"get\",\"model.hasPhone\",[\"loc\",[null,[23,8],[23,22]]]]],[],1,null,[\"loc\",[null,[23,2],[38,9]]]],\n        [\"block\",\"envoy-sortable\",[],[\"parentClass\",\"fieldSorter\",\"collectionLength\",[\"subexpr\",\"@mut\",[[\"get\",\"model.customFields.length\",[\"loc\",[null,[42,21],[42,46]]]]],[],[]],\"recalculateContainer\",[\"subexpr\",\"action\",[\"recalculateDraggableContainer\"],[],[\"loc\",[null,[43,25],[43,65]]]],\"onChange\",\"reorderCustomFields\"],2,null,[\"loc\",[null,[40,2],[68,21]]]],\n        [\"block\",\"ic-menu\",[],[],3,null,[\"loc\",[null,[70,2],[92,14]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/templates/components/labeled-input', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 2,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/labeled-input.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"label\",[\"loc\",[null,[3,4],[3,13]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 6,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/labeled-input.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"labelForError\",[\"loc\",[null,[5,4],[5,21]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 8,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 10,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/labeled-input.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"autofocus-input\",[],[\"id\",[\"subexpr\",\"concat\",[[\"get\",\"elementId\",[\"loc\",[null,[9,31],[9,40]]]],\"-input\"],[],[\"loc\",[null,[9,23],[9,50]]]],\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"value\",[\"loc\",[null,[9,57],[9,62]]]]],[],[]],\"type\",[\"subexpr\",\"@mut\",[[\"get\",\"type\",[\"loc\",[null,[9,68],[9,72]]]]],[],[]],\"placeholder\",[\"subexpr\",\"@mut\",[[\"get\",\"placeholder\",[\"loc\",[null,[9,131],[9,142]]]]],[],[]],\"class\",[\"subexpr\",\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"inputClass\",[]],[\"subexpr\",\"-normalize-class\",[\"inputClass\",[\"get\",\"inputClass\",[]]],[],[]]],[],[]],\" \",[\"subexpr\",\"if\",[[\"get\",\"isValid\",[]],[\"subexpr\",\"-normalize-class\",[\"isValid\",[\"get\",\"isValid\",[]]],[\"activeClass\",\"\",\"inactiveClass\",\"error\"],[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[9,2],[9,144]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 10,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 12,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/labeled-input.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"id\",[\"subexpr\",\"concat\",[[\"get\",\"elementId\",[\"loc\",[null,[11,21],[11,30]]]],\"-input\"],[],[\"loc\",[null,[11,13],[11,40]]]],\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"value\",[\"loc\",[null,[11,47],[11,52]]]]],[],[]],\"type\",[\"subexpr\",\"@mut\",[[\"get\",\"type\",[\"loc\",[null,[11,58],[11,62]]]]],[],[]],\"placeholder\",[\"subexpr\",\"@mut\",[[\"get\",\"placeholder\",[\"loc\",[null,[11,121],[11,132]]]]],[],[]],\"class\",[\"subexpr\",\"concat\",[[\"subexpr\",\"if\",[[\"get\",\"inputClass\",[]],[\"subexpr\",\"-normalize-class\",[\"inputClass\",[\"get\",\"inputClass\",[]]],[],[]]],[],[]],\" \",[\"subexpr\",\"if\",[[\"get\",\"isValid\",[]],[\"subexpr\",\"-normalize-class\",[\"isValid\",[\"get\",\"isValid\",[]]],[\"activeClass\",\"\",\"inactiveClass\",\"error\"],[]],\"error\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[11,2],[11,134]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 12,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/labeled-input.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"label\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(5);\n        morphs[0] = dom.createAttrMorph(element0, 'for');\n        morphs[1] = dom.createAttrMorph(element0, 'class');\n        morphs[2] = dom.createAttrMorph(element0, 'onclick');\n        morphs[3] = dom.createMorphAt(element0,1,1);\n        morphs[4] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"for\",[\"concat\",[[\"get\",\"elementId\",[\"loc\",[null,[1,14],[1,23]]]],\"-input\"]]],\n        [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"unless\",[[\"get\",\"isValid\",[\"loc\",[null,[1,49],[1,56]]]],\"error-description\"],[],[\"loc\",[null,[1,40],[1,78]]]]]]],\n        [\"attribute\",\"onclick\",[\"subexpr\",\"action\",[\"labelClicked\"],[],[\"loc\",[null,[1,88],[1,113]]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"isValid\",[\"loc\",[null,[2,15],[2,22]]]]],[\"class\",\"js-password\"],0,1,[\"loc\",[null,[2,2],[6,16]]]],\n        [\"block\",\"if\",[[\"get\",\"autofocus\",[\"loc\",[null,[8,6],[8,15]]]]],[],2,3,[\"loc\",[null,[8,0],[12,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/templates/components/leaderboard-card', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 11,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/leaderboard-card.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle px2 grayDark\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle px2 py1 grayDark js-entry-feed-item\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h4\");\n        dom.setAttribute(el2,\"class\",\"grayDarker firstPlaceName js-leaderboard-employee-name\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"table-cell border-bottom align-middle px2 grayDark right-align js-leaderboard-employee-count\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(fragment, [2, 1]),0,0);\n        morphs[2] = dom.createMorphAt(dom.childAt(fragment, [4]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"oneBasedIndex\",[\"loc\",[null,[2,2],[2,19]]]],\n        [\"content\",\"leader.employee.name\",[\"loc\",[null,[6,69],[6,93]]]],\n        [\"content\",\"leader.count\",[\"loc\",[null,[10,2],[10,18]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/liquid-bind', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 5,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 7,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"yield\",[[\"get\",\"version\",[\"loc\",[null,[6,15],[6,22]]]]],[],[\"loc\",[null,[6,6],[6,26]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 7,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 9,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"version\",[\"loc\",[null,[8,6],[8,20]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 2,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 11,\n                \"column\": 0\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"hasBlock\",[\"loc\",[null,[5,11],[5,19]]]]],[],0,1,[\"loc\",[null,[5,4],[9,12]]]]\n          ],\n          locals: [\"version\"],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 12,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-versions\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"attrs.value\",[\"loc\",[null,[2,28],[2,39]]]]],[],[]],\"use\",[\"subexpr\",\"@mut\",[[\"get\",\"use\",[\"loc\",[null,[2,44],[2,47]]]]],[],[]],\"outletName\",[\"subexpr\",\"@mut\",[[\"get\",\"attrs.outletName\",[\"loc\",[null,[3,32],[3,48]]]]],[],[]],\"name\",\"liquid-bind\",\"renderWhenFalse\",true,\"class\",[\"subexpr\",\"@mut\",[[\"get\",\"class\",[\"loc\",[null,[4,67],[4,72]]]]],[],[]]],0,null,[\"loc\",[null,[2,2],[11,22]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 25,\n                    \"column\": 6\n                  },\n                  \"end\": {\n                    \"line\": 27,\n                    \"column\": 6\n                  }\n                },\n                \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"yield\",[[\"get\",\"version\",[\"loc\",[null,[26,17],[26,24]]]]],[],[\"loc\",[null,[26,8],[26,28]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 27,\n                    \"column\": 6\n                  },\n                  \"end\": {\n                    \"line\": 29,\n                    \"column\": 6\n                  }\n                },\n                \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"version\",[\"loc\",[null,[28,8],[28,22]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 21,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 31,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"hasBlock\",[\"loc\",[null,[25,13],[25,21]]]]],[],0,1,[\"loc\",[null,[25,6],[29,14]]]]\n            ],\n            locals: [\"version\"],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 32,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"liquid-versions\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"attrs.value\",[\"loc\",[null,[21,30],[21,41]]]]],[],[]],\"notify\",[\"subexpr\",\"@mut\",[[\"get\",\"container\",[\"loc\",[null,[21,49],[21,58]]]]],[],[]],\"use\",[\"subexpr\",\"@mut\",[[\"get\",\"use\",[\"loc\",[null,[21,63],[21,66]]]]],[],[]],\"outletName\",[\"subexpr\",\"@mut\",[[\"get\",\"attrs.outletName\",[\"loc\",[null,[22,34],[22,50]]]]],[],[]],\"name\",\"liquid-bind\",\"renderWhenFalse\",true],0,null,[\"loc\",[null,[21,4],[31,26]]]]\n          ],\n          locals: [\"container\"],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 12,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 33,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-container\",[],[\"id\",[\"subexpr\",\"@mut\",[[\"get\",\"id\",[\"loc\",[null,[14,9],[14,11]]]]],[],[]],\"class\",[\"subexpr\",\"@mut\",[[\"get\",\"class\",[\"loc\",[null,[15,12],[15,17]]]]],[],[]],\"growDuration\",[\"subexpr\",\"@mut\",[[\"get\",\"growDuration\",[\"loc\",[null,[16,19],[16,31]]]]],[],[]],\"growPixelsPerSecond\",[\"subexpr\",\"@mut\",[[\"get\",\"growPixelsPerSecond\",[\"loc\",[null,[17,26],[17,45]]]]],[],[]],\"growEasing\",[\"subexpr\",\"@mut\",[[\"get\",\"growEasing\",[\"loc\",[null,[18,17],[18,27]]]]],[],[]],\"enableGrowth\",[\"subexpr\",\"@mut\",[[\"get\",\"enableGrowth\",[\"loc\",[null,[19,19],[19,31]]]]],[],[]]],0,null,[\"loc\",[null,[13,2],[32,25]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 34,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/liquid-bind.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"containerless\",[\"loc\",[null,[1,6],[1,19]]]]],[],0,1,[\"loc\",[null,[1,0],[33,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/liquid-container', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 14\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/liquid-container.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"yield\",[[\"get\",\"this\",[\"loc\",[null,[1,8],[1,12]]]]],[],[\"loc\",[null,[1,0],[1,14]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/liquid-if', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 4,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 6,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"      \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"yield\",[\"loc\",[null,[5,6],[5,15]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 6,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 8,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"      \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"yield\",[],[\"to\",\"inverse\"],[\"loc\",[null,[7,6],[7,28]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 2,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 9,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"valueVersion\",[\"loc\",[null,[4,10],[4,22]]]]],[],0,1,[\"loc\",[null,[4,4],[8,11]]]]\n          ],\n          locals: [\"valueVersion\"],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 10,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-versions\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"showFirstBlock\",[\"loc\",[null,[2,27],[2,41]]]]],[],[]],\"name\",[\"subexpr\",\"@mut\",[[\"get\",\"helperName\",[\"loc\",[null,[2,47],[2,57]]]]],[],[]],\"use\",[\"subexpr\",\"@mut\",[[\"get\",\"use\",[\"loc\",[null,[3,27],[3,30]]]]],[],[]],\"renderWhenFalse\",[\"subexpr\",\"hasBlock\",[\"inverse\"],[],[\"loc\",[null,[3,47],[3,67]]]],\"class\",[\"subexpr\",\"@mut\",[[\"get\",\"class\",[\"loc\",[null,[3,74],[3,79]]]]],[],[]]],0,null,[\"loc\",[null,[2,2],[9,22]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 21,\n                    \"column\": 6\n                  },\n                  \"end\": {\n                    \"line\": 23,\n                    \"column\": 6\n                  }\n                },\n                \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"        \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"yield\",[\"loc\",[null,[22,8],[22,17]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 23,\n                    \"column\": 6\n                  },\n                  \"end\": {\n                    \"line\": 25,\n                    \"column\": 6\n                  }\n                },\n                \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"        \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"yield\",[],[\"to\",\"inverse\"],[\"loc\",[null,[24,8],[24,30]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 19,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 26,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"valueVersion\",[\"loc\",[null,[21,12],[21,24]]]]],[],0,1,[\"loc\",[null,[21,6],[25,13]]]]\n            ],\n            locals: [\"valueVersion\"],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 11,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 27,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"liquid-versions\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"showFirstBlock\",[\"loc\",[null,[19,29],[19,43]]]]],[],[]],\"notify\",[\"subexpr\",\"@mut\",[[\"get\",\"container\",[\"loc\",[null,[19,51],[19,60]]]]],[],[]],\"name\",[\"subexpr\",\"@mut\",[[\"get\",\"helperName\",[\"loc\",[null,[19,66],[19,76]]]]],[],[]],\"use\",[\"subexpr\",\"@mut\",[[\"get\",\"use\",[\"loc\",[null,[20,8],[20,11]]]]],[],[]],\"renderWhenFalse\",[\"subexpr\",\"hasBlock\",[\"inverse\"],[],[\"loc\",[null,[20,28],[20,48]]]]],0,null,[\"loc\",[null,[19,4],[26,24]]]]\n          ],\n          locals: [\"container\"],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 10,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 28,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-container\",[],[\"id\",[\"subexpr\",\"@mut\",[[\"get\",\"id\",[\"loc\",[null,[12,9],[12,11]]]]],[],[]],\"class\",[\"subexpr\",\"@mut\",[[\"get\",\"class\",[\"loc\",[null,[13,12],[13,17]]]]],[],[]],\"growDuration\",[\"subexpr\",\"@mut\",[[\"get\",\"growDuration\",[\"loc\",[null,[14,19],[14,31]]]]],[],[]],\"growPixelsPerSecond\",[\"subexpr\",\"@mut\",[[\"get\",\"growPixelsPerSecond\",[\"loc\",[null,[15,26],[15,45]]]]],[],[]],\"growEasing\",[\"subexpr\",\"@mut\",[[\"get\",\"growEasing\",[\"loc\",[null,[16,17],[16,27]]]]],[],[]],\"enableGrowth\",[\"subexpr\",\"@mut\",[[\"get\",\"enableGrowth\",[\"loc\",[null,[17,19],[17,31]]]]],[],[]]],0,null,[\"loc\",[null,[11,2],[27,23]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 29,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/liquid-if.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"containerless\",[\"loc\",[null,[1,6],[1,19]]]]],[],0,1,[\"loc\",[null,[1,0],[28,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/liquid-modal', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 2,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 6,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-modal.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"role\",\"dialog\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(4);\n            morphs[0] = dom.createAttrMorph(element0, 'class');\n            morphs[1] = dom.createAttrMorph(element0, 'aria-labelledby');\n            morphs[2] = dom.createAttrMorph(element0, 'aria-label');\n            morphs[3] = dom.createMorphAt(element0,1,1);\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"class\",[\"concat\",[\"lf-dialog \",[\"get\",\"cc.options.dialogClass\",[\"loc\",[null,[3,28],[3,50]]]]]]],\n            [\"attribute\",\"aria-labelledby\",[\"get\",\"cc.options.ariaLabelledBy\",[\"loc\",[null,[3,86],[3,111]]]]],\n            [\"attribute\",\"aria-label\",[\"get\",\"cc.options.ariaLabel\",[\"loc\",[null,[3,127],[3,147]]]]],\n            [\"inline\",\"lf-vue\",[[\"get\",\"cc.view\",[\"loc\",[null,[4,15],[4,22]]]]],[\"dismiss\",\"dismiss\"],[\"loc\",[null,[4,6],[4,42]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\",\n              \"multiple-nodes\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 8,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-modal.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"lm-container\",[],[\"action\",\"escape\",\"clickAway\",\"outsideClick\"],0,null,[\"loc\",[null,[2,2],[6,19]]]],\n          [\"content\",\"lf-overlay\",[\"loc\",[null,[7,2],[7,16]]]]\n        ],\n        locals: [\"cc\"],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 9,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/liquid-modal.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"liquid-versions\",[],[\"name\",\"liquid-modal\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"currentContext\",[\"loc\",[null,[1,45],[1,59]]]]],[],[]],\"renderWhenFalse\",false],0,null,[\"loc\",[null,[1,0],[8,20]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/liquid-outlet', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 15,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 17,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-outlet.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"outlet\",[[\"get\",\"outletName\",[\"loc\",[null,[16,17],[16,27]]]]],[],[\"loc\",[null,[16,8],[16,29]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 2,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 19,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-outlet.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"set-outlet-state\",[[\"get\",\"outletName\",[\"loc\",[null,[15,26],[15,36]]]],[\"get\",\"version.outletState\",[\"loc\",[null,[15,37],[15,56]]]]],[],0,null,[\"loc\",[null,[15,6],[17,28]]]]\n          ],\n          locals: [\"version\"],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 20,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-outlet.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-bind\",[[\"get\",\"outletState\",[\"loc\",[null,[2,17],[2,28]]]]],[\"id\",[\"subexpr\",\"@mut\",[[\"get\",\"id\",[\"loc\",[null,[3,9],[3,11]]]]],[],[]],\"class\",[\"subexpr\",\"@mut\",[[\"get\",\"class\",[\"loc\",[null,[4,12],[4,17]]]]],[],[]],\"use\",[\"subexpr\",\"@mut\",[[\"get\",\"use\",[\"loc\",[null,[5,10],[5,13]]]]],[],[]],\"name\",\"liquid-outlet\",\"outletName\",[\"subexpr\",\"@mut\",[[\"get\",\"outletName\",[\"loc\",[null,[7,17],[7,27]]]]],[],[]],\"containerless\",[\"subexpr\",\"@mut\",[[\"get\",\"containerless\",[\"loc\",[null,[8,20],[8,33]]]]],[],[]],\"growDuration\",[\"subexpr\",\"@mut\",[[\"get\",\"growDuration\",[\"loc\",[null,[9,19],[9,31]]]]],[],[]],\"growPixelsPerSecond\",[\"subexpr\",\"@mut\",[[\"get\",\"growPixelsPerSecond\",[\"loc\",[null,[10,26],[10,45]]]]],[],[]],\"growEasing\",[\"subexpr\",\"@mut\",[[\"get\",\"growEasing\",[\"loc\",[null,[11,17],[11,27]]]]],[],[]],\"enableGrowth\",[\"subexpr\",\"@mut\",[[\"get\",\"enableGrowth\",[\"loc\",[null,[12,19],[12,31]]]]],[],[]]],0,null,[\"loc\",[null,[2,2],[19,20]]]]\n        ],\n        locals: [\"outletState\"],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 21,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/liquid-outlet.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"get-outlet-state\",[[\"get\",\"outletName\",[\"loc\",[null,[1,21],[1,31]]]]],[],0,null,[\"loc\",[null,[1,0],[20,21]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/liquid-versions', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 3,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 5,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-versions.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"yield\",[[\"get\",\"version.value\",[\"loc\",[null,[4,14],[4,27]]]]],[],[\"loc\",[null,[4,6],[4,31]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 2,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 6,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-versions.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"liquid-child\",[],[\"version\",[\"subexpr\",\"@mut\",[[\"get\",\"version\",[\"loc\",[null,[3,28],[3,35]]]]],[],[]],\"liquidChildDidRender\",\"childDidRender\",\"class\",[\"subexpr\",\"@mut\",[[\"get\",\"class\",[\"loc\",[null,[3,80],[3,85]]]]],[],[]]],0,null,[\"loc\",[null,[3,4],[5,21]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-versions.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"version.shouldRender\",[\"loc\",[null,[2,8],[2,28]]]]],[],0,null,[\"loc\",[null,[2,2],[6,9]]]]\n        ],\n        locals: [\"version\"],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 8,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/liquid-versions.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"versions\",[\"loc\",[null,[1,8],[1,16]]]]],[\"key\",\"@identity\"],0,null,[\"loc\",[null,[1,0],[7,9]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/liquid-with', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 2,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 4,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-with.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"yield\",[[\"get\",\"version\",[\"loc\",[null,[3,13],[3,20]]]]],[],[\"loc\",[null,[3,4],[3,24]]]]\n          ],\n          locals: [\"version\"],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-with.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-versions\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"attrs.value\",[\"loc\",[null,[2,28],[2,39]]]]],[],[]],\"use\",[\"subexpr\",\"@mut\",[[\"get\",\"use\",[\"loc\",[null,[2,44],[2,47]]]]],[],[]],\"name\",[\"subexpr\",\"@mut\",[[\"get\",\"name\",[\"loc\",[null,[2,53],[2,57]]]]],[],[]],\"class\",[\"subexpr\",\"@mut\",[[\"get\",\"class\",[\"loc\",[null,[2,64],[2,69]]]]],[],[]]],0,null,[\"loc\",[null,[2,2],[4,23]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 14,\n                  \"column\": 4\n                },\n                \"end\": {\n                  \"line\": 16,\n                  \"column\": 4\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/liquid-with.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"yield\",[[\"get\",\"version\",[\"loc\",[null,[15,15],[15,22]]]]],[],[\"loc\",[null,[15,6],[15,26]]]]\n            ],\n            locals: [\"version\"],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 6,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 17,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/liquid-with.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"liquid-versions\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"attrs.value\",[\"loc\",[null,[14,30],[14,41]]]]],[],[]],\"notify\",[\"subexpr\",\"@mut\",[[\"get\",\"container\",[\"loc\",[null,[14,49],[14,58]]]]],[],[]],\"use\",[\"subexpr\",\"@mut\",[[\"get\",\"use\",[\"loc\",[null,[14,63],[14,66]]]]],[],[]],\"name\",[\"subexpr\",\"@mut\",[[\"get\",\"name\",[\"loc\",[null,[14,72],[14,76]]]]],[],[]]],0,null,[\"loc\",[null,[14,4],[16,25]]]]\n          ],\n          locals: [\"container\"],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 18,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/liquid-with.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"liquid-container\",[],[\"id\",[\"subexpr\",\"@mut\",[[\"get\",\"id\",[\"loc\",[null,[7,9],[7,11]]]]],[],[]],\"class\",[\"subexpr\",\"@mut\",[[\"get\",\"class\",[\"loc\",[null,[8,12],[8,17]]]]],[],[]],\"growDuration\",[\"subexpr\",\"@mut\",[[\"get\",\"growDuration\",[\"loc\",[null,[9,19],[9,31]]]]],[],[]],\"growPixelsPerSecond\",[\"subexpr\",\"@mut\",[[\"get\",\"growPixelsPerSecond\",[\"loc\",[null,[10,26],[10,45]]]]],[],[]],\"growEasing\",[\"subexpr\",\"@mut\",[[\"get\",\"growEasing\",[\"loc\",[null,[11,17],[11,27]]]]],[],[]],\"enableGrowth\",[\"subexpr\",\"@mut\",[[\"get\",\"enableGrowth\",[\"loc\",[null,[12,19],[12,31]]]]],[],[]]],0,null,[\"loc\",[null,[6,2],[17,23]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 19,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/liquid-with.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"containerless\",[\"loc\",[null,[1,6],[1,19]]]]],[],0,1,[\"loc\",[null,[1,0],[18,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/load-more', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 3,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/load-more.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"async-button\",[],[\"action\",\"incrementCurrentPage\",\"class\",\"btn btn--small\",\"default\",\"Loading more...\",\"pending\",\"Loading...\",\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isLoading\",[\"loc\",[null,[2,126],[2,135]]]]],[],[]]],[\"loc\",[null,[2,2],[2,137]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 3,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/load-more.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"hasMorePages\",[\"loc\",[null,[1,6],[1,18]]]]],[],0,null,[\"loc\",[null,[1,0],[3,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/location-info-w-map', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 20,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 22,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/location-info-w-map.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"async-button\",[],[\"action\",\"validateAddress\",\"classNames\",\"btn btn--medium btn--green js-location-info-save\",\"default\",\"Save Location Info\",\"pending\",\"Saving...\"],[\"loc\",[null,[21,6],[21,158]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 26,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 30,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/location-info-w-map.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createAttrMorph(element0, 'class');\n          morphs[1] = dom.createMorphAt(element0,1,1);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"class\",[\"concat\",[\"googleMap \",[\"subexpr\",\"if\",[[\"get\",\"isEditingAddress\",[\"loc\",[null,[27,33],[27,49]]]],\"isEditing\"],[],[\"loc\",[null,[27,28],[27,63]]]]]]],\n          [\"inline\",\"google-maps\",[],[\"latitude\",[\"subexpr\",\"@mut\",[[\"get\",\"model.latitude\",[\"loc\",[null,[28,31],[28,45]]]]],[],[]],\"longitude\",[\"subexpr\",\"@mut\",[[\"get\",\"model.longitude\",[\"loc\",[null,[28,56],[28,71]]]]],[],[]],\"isEditing\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditingAddress\",[\"loc\",[null,[28,82],[28,98]]]]],[],[]]],[\"loc\",[null,[28,8],[28,100]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 30,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 34,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/location-info-w-map.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"googleMapPlaceholder icon-mapPin flex flex-center\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"center mx-auto\");\n          var el3 = dom.createTextNode(\"Enter your address\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"br\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"to see it on the map\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 37,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/location-info-w-map.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"h2\");\n        dom.setAttribute(el1,\"class\",\"mt3\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"p\");\n        dom.setAttribute(el1,\"class\",\"h5 grayDark\");\n        var el2 = dom.createTextNode(\"Tell us about your workplace. \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"a\");\n        dom.setAttribute(el2,\"href\",\"https://help.envoy.co/getting-started/personalize-account-settings/#update-your-location\");\n        dom.setAttribute(el2,\"target\",\"_blank\");\n        dom.setAttribute(el2,\"class\",\"help\");\n        dom.setAttribute(el2,\"tabindex\",\"-1\");\n        var el3 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"clearfix mt3 mxn2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-6 px2\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-6 px2\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element1 = dom.childAt(fragment, [4]);\n        var element2 = dom.childAt(element1, [1]);\n        var morphs = new Array(6);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),0,0);\n        morphs[1] = dom.createMorphAt(element2,1,1);\n        morphs[2] = dom.createMorphAt(element2,3,3);\n        morphs[3] = dom.createMorphAt(element2,5,5);\n        morphs[4] = dom.createMorphAt(element2,7,7);\n        morphs[5] = dom.createMorphAt(dom.childAt(element1, [3]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"title\",[\"loc\",[null,[1,16],[1,25]]]],\n        [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"companyName\",[\"loc\",[null,[7,12],[7,23]]]]],[],[]],\"inputClass\",\"company-name\",\"label\",\"Company Name\",\"errorLabel\",\"This is a Required Field\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.companyName\",[\"loc\",[null,[11,16],[11,40]]]]],[],[]],\"placeholder\",[\"subexpr\",\"@mut\",[[\"get\",\"placeholder\",[\"loc\",[null,[12,18],[12,29]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[13,16],[13,25]]]]],[],[]]],[\"loc\",[null,[6,4],[14,8]]]],\n        [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.name\",[\"loc\",[null,[16,26],[16,36]]]]],[],[]],\"inputClass\",\"location-name\",\"label\",\"Location Name\",\"errorLabel\",\"This is a Required Field\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.name\",[\"loc\",[null,[16,134],[16,151]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[16,162],[16,171]]]]],[],[]]],[\"loc\",[null,[16,4],[16,173]]]],\n        [\"inline\",\"granular-address-lookup-fields-settings\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[18,52],[18,57]]]]],[],[]],\"inputAddress\",[\"subexpr\",\"@mut\",[[\"get\",\"inputAddress\",[\"loc\",[null,[18,71],[18,83]]]]],[],[]],\"fadeMap\",\"fadeMap\",\"unfadeMap\",\"unfadeMap\",\"inputAddressErrorMessage\",[\"subexpr\",\"@mut\",[[\"get\",\"inputAddressErrorMessage\",[\"loc\",[null,[18,149],[18,173]]]]],[],[]]],[\"loc\",[null,[18,4],[18,175]]]],\n        [\"block\",\"unless\",[[\"get\",\"isNewLocation\",[\"loc\",[null,[20,14],[20,27]]]]],[],0,null,[\"loc\",[null,[20,4],[22,15]]]],\n        [\"block\",\"if\",[[\"get\",\"shouldDisplayMap\",[\"loc\",[null,[26,10],[26,26]]]]],[],1,2,[\"loc\",[null,[26,4],[34,11]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/components/location-info', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 27,\n            \"column\": 2\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/location-info.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"h2\");\n        var el2 = dom.createTextNode(\"Location Info\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"p\");\n        dom.setAttribute(el1,\"class\",\"h5 grayDark\");\n        var el2 = dom.createTextNode(\"Tell us about your workplace.\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(fragment,4,4,contextualElement);\n        morphs[1] = dom.createMorphAt(fragment,6,6,contextualElement);\n        morphs[2] = dom.createMorphAt(fragment,8,8,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"labeled-input\",[],[\"inputClass\",\"company-name\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.company.name\",[\"loc\",[null,[6,6],[6,24]]]]],[],[]],\"label\",\"Company Name\",\"errorLabel\",\"This is a Required Field\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.companyName\",[\"loc\",[null,[9,10],[9,28]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[10,10],[10,19]]]]],[],[]]],[\"loc\",[null,[4,0],[11,2]]]],\n        [\"inline\",\"labeled-input\",[],[\"inputClass\",\"location-name\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.name\",[\"loc\",[null,[15,6],[15,16]]]]],[],[]],\"label\",\"Location Name\",\"errorLabel\",\"This is a Required Field\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.model.name\",[\"loc\",[null,[18,10],[18,27]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[19,10],[19,19]]]]],[],[]]],[\"loc\",[null,[13,0],[20,2]]]],\n        [\"inline\",\"granular-address-lookup-fields\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[23,6],[23,11]]]]],[],[]],\"inputAddress\",[\"subexpr\",\"@mut\",[[\"get\",\"inputAddress\",[\"loc\",[null,[24,13],[24,25]]]]],[],[]],\"inputAddressErrorMessage\",[\"subexpr\",\"@mut\",[[\"get\",\"inputAddressErrorMessage\",[\"loc\",[null,[25,25],[25,49]]]]],[],[]],\"addressDidChange\",[\"subexpr\",\"action\",[\"addressDidChange\"],[],[\"loc\",[null,[26,17],[26,44]]]]],[\"loc\",[null,[22,0],[27,2]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/logo-uploader', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 6,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 10,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/logo-uploader.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mx-auto is-uploading relative js-logo-preview\");\n          dom.setAttribute(el1,\"style\",\"width:200px;height:200px\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"loading\"],[],[\"loc\",[null,[8,8],[8,29]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 12,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/logo-uploader.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"class\",\"rounded mx-auto js-logo-preview\");\n            dom.setAttribute(el1,\"style\",\"max-width:200px;max-height:200px;\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createAttrMorph(element1, 'src');\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"src\",[\"get\",\"model.logo.url\",[\"loc\",[null,[11,17],[11,31]]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 12,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 14,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/logo-uploader.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"class\",\"rounded mx-auto js-logo-preview\");\n            dom.setAttribute(el1,\"src\",\"assets/images/logo-placeholder.png\");\n            dom.setAttribute(el1,\"style\",\"max-width:200px;max-height:200px;\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 10,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 14,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/logo-uploader.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"model.logo.url\",[\"loc\",[null,[10,14],[10,28]]]]],[],0,1,[\"loc\",[null,[10,4],[14,4]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 22,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 24,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/logo-uploader.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"btn btn--small btn--redHoverFill ml1 js-delete-logo\");\n          dom.setAttribute(el1,\"tabindex\",\"-1\");\n          var el2 = dom.createTextNode(\"Delete\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element0);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"deleteLogo\"],[],[\"loc\",[null,[23,71],[23,94]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 28,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/logo-uploader.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"h2\");\n        var el2 = dom.createTextNode(\"Logo\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"p\");\n        dom.setAttribute(el1,\"class\",\"h5 grayDark\");\n        var el2 = dom.createTextNode(\"Upload a logo that will appear on your iPad, visitor badges, emails, and more.\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"mt3 flex\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex-none flex flex-center mr2 rounded js-logo\");\n        dom.setAttribute(el2,\"style\",\"width:200px;height:200px\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"uploadButton mb2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"span\");\n        dom.setAttribute(el4,\"class\",\"btn btn--small btn--blue\");\n        var el5 = dom.createTextNode(\"Select file\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"h5\");\n        var el4 = dom.createTextNode(\"We recommend uploading a transparent PNG cropped to the edges of your logo and up to 1000px wide or 600px tall.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element2 = dom.childAt(fragment, [4]);\n        var element3 = dom.childAt(element2, [3, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element2, [1]),1,1);\n        morphs[1] = dom.createMorphAt(element3,1,1);\n        morphs[2] = dom.createMorphAt(element3,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isLogoUploading\",[\"loc\",[null,[6,10],[6,25]]]]],[],0,1,[\"loc\",[null,[6,4],[14,11]]]],\n        [\"inline\",\"file-upload\",[],[\"url\",[\"subexpr\",\"@mut\",[[\"get\",\"logoUploadUrl\",[\"loc\",[null,[19,24],[19,37]]]]],[],[]],\"files\",[\"subexpr\",\"@mut\",[[\"get\",\"files\",[\"loc\",[null,[19,44],[19,49]]]]],[],[]],\"namespace\",\"location\",\"param\",\"logo\",\"requestType\",\"PUT\",\"accept\",\"image/png,image/gif,image/jpeg\",\"action\",\"setLogo\",\"beginUpload\",\"toggleIsLogoUploading\",\"allUploaded\",\"toggleIsLogoUploading\",\"flashPromiseOff\",true,\"tabindex\",\"400\"],[\"loc\",[null,[19,6],[19,268]]]],\n        [\"block\",\"if\",[[\"get\",\"model.logo\",[\"loc\",[null,[22,12],[22,22]]]]],[],2,null,[\"loc\",[null,[22,6],[24,13]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/components/mapped-field', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 13,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/mapped-field.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"columns\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"label\");\n          dom.setAttribute(el2,\"class\",\"js-select-label\");\n          dom.setAttribute(el2,\"for\",\"_mappedFieldSelectId1\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element1, [1]),0,0);\n          morphs[1] = dom.createMorphAt(element1,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"field\",[\"loc\",[null,[3,63],[3,72]]]],\n          [\"inline\",\"x-select-blockless\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"options\",[\"loc\",[null,[5,12],[5,19]]]]],[],[]],\"optionValuePath\",\"content.value\",\"optionLabelPath\",\"content.value\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"value\",[\"loc\",[null,[8,10],[8,15]]]]],[],[]],\"prompt\",\"None\",\"id\",\"_mappedFieldSelectId1\"],[\"loc\",[null,[4,4],[11,6]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 0\n              },\n              \"end\": {\n                \"line\": 25,\n                \"column\": 0\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/mapped-field.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"columns\");\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"label\");\n            dom.setAttribute(el2,\"class\",\"js-select-label\");\n            dom.setAttribute(el2,\"for\",\"_mappedFieldSelectId2\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n  \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n            morphs[1] = dom.createMorphAt(element0,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"field\",[\"loc\",[null,[15,63],[15,72]]]],\n            [\"inline\",\"select-2\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"host\",[\"loc\",[null,[17,10],[17,14]]]]],[],[]],\"optionLabelPath\",\"name\",\"id\",\"_mappedFieldSelectId2\",\"allowClear\",true,\"placeholder\",\"Choose a Host\",\"query\",\"searchEmployees\"],[\"loc\",[null,[16,4],[23,6]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 25,\n                \"column\": 0\n              },\n              \"end\": {\n                \"line\": 29,\n                \"column\": 0\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/mapped-field.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"columns\");\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n  \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"value\",[\"loc\",[null,[27,26],[27,31]]]]],[],[]],\"label\",[\"subexpr\",\"@mut\",[[\"get\",\"field\",[\"loc\",[null,[27,38],[27,43]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"isEmptyAndRequired\",[\"loc\",[null,[27,54],[27,72]]]]],[],[]],\"autocomplete\",\"off\",\"errorLabel\",\"This is a Required Field\"],[\"loc\",[null,[27,4],[27,131]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 13,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 29,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/mapped-field.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"hasTypeHost\",[\"loc\",[null,[13,10],[13,21]]]]],[],0,1,[\"loc\",[null,[13,0],[29,0]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 30,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/mapped-field.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isDropdown\",[\"loc\",[null,[1,6],[1,16]]]]],[],0,1,[\"loc\",[null,[1,0],[29,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-area', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-area.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\t\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"nf-dot\",[],[\"class\",\"nf-area-tracking-dot\",\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"trackedData.renderX\",[\"loc\",[null,[4,41],[4,60]]]]],[],[]],\"y\",[\"subexpr\",\"@mut\",[[\"get\",\"trackedData.renderY\",[\"loc\",[null,[4,63],[4,82]]]]],[],[]],\"r\",[\"subexpr\",\"@mut\",[[\"get\",\"trackingDotRadius\",[\"loc\",[null,[4,85],[4,102]]]]],[],[]]],[\"loc\",[null,[4,1],[4,104]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 5,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-area.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"path\");\n        dom.setAttribute(el1,\"class\",\"nf-area-area\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"path\");\n        dom.setAttribute(el1,\"class\",\"nf-area-line\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(fragment, [2]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createAttrMorph(element0, 'd');\n        morphs[1] = dom.createAttrMorph(element1, 'd');\n        morphs[2] = dom.createMorphAt(fragment,4,4,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"d\",[\"concat\",[[\"get\",\"d\",[\"loc\",[null,[1,32],[1,33]]]]]]],\n        [\"attribute\",\"d\",[\"concat\",[[\"get\",\"dLine\",[\"loc\",[null,[2,32],[2,37]]]]]]],\n        [\"block\",\"if\",[[\"get\",\"showTrackingDot\",[\"loc\",[null,[3,6],[3,21]]]]],[],0,null,[\"loc\",[null,[3,0],[5,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-bars', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"modifiers\",\n            \"modifiers\": [\n              \"action\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 3,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-bars.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\t\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"path\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createAttrMorph(element0, 'd');\n          morphs[1] = dom.createAttrMorph(element0, 'class');\n          morphs[2] = dom.createElementMorph(element0);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"d\",[\"concat\",[[\"get\",\"bar.path\",[\"loc\",[null,[2,12],[2,20]]]]]]],\n          [\"attribute\",\"class\",[\"concat\",[[\"get\",\"bar.className\",[\"loc\",[null,[2,33],[2,46]]]]]]],\n          [\"element\",\"action\",[\"nfBarClickBar\",[\"get\",\"bar.data\",[\"loc\",[null,[2,75],[2,83]]]],[\"get\",\"bar.index\",[\"loc\",[null,[2,84],[2,93]]]]],[],[\"loc\",[null,[2,50],[2,95]]]]\n        ],\n        locals: [\"bar\"],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-bars.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"nf-dot\",[],[\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"trackedData.renderX\",[\"loc\",[null,[6,13],[6,32]]]]],[],[]],\"y\",[\"subexpr\",\"@mut\",[[\"get\",\"trackedData.renderY\",[\"loc\",[null,[6,35],[6,54]]]]],[],[]],\"r\",[\"subexpr\",\"@mut\",[[\"get\",\"trackingDotRadius\",[\"loc\",[null,[6,57],[6,74]]]]],[],[]]],[\"loc\",[null,[6,2],[6,76]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\",\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 7,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-bars.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"bars\",[\"loc\",[null,[1,8],[1,12]]]]],[],0,null,[\"loc\",[null,[1,0],[3,9]]]],\n        [\"block\",\"if\",[[\"get\",\"showTrackingDot\",[\"loc\",[null,[5,6],[5,21]]]]],[],1,null,[\"loc\",[null,[5,0],[7,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-brush-selection', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 15,\n            \"column\": 4\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-brush-selection.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"rect\");\n        dom.setAttribute(el1,\"class\",\"nf-brush-selection-overlay\");\n        dom.setAttribute(el1,\"x\",\"0\");\n        dom.setAttribute(el1,\"y\",\"0\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"rect\");\n        dom.setAttribute(el1,\"class\",\"nf-brush-selection-overlay\");\n        dom.setAttribute(el1,\"y\",\"0\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"line\");\n        dom.setAttribute(el1,\"class\",\"nf-brush-selection-line\");\n        dom.setAttribute(el1,\"y1\",\"0\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"line\");\n        dom.setAttribute(el1,\"class\",\"nf-brush-selection-line\");\n        dom.setAttribute(el1,\"y1\",\"0\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"g\");\n        dom.setAttribute(el1,\"class\",\"nf-brush-selection-left-display\");\n        var el2 = dom.createTextNode(\"\\n\t\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"rect\");\n        dom.setAttribute(el2,\"class\",\"nf-brush-selection-left-text-bg\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\t\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"text\");\n        dom.setAttribute(el2,\"class\",\"nf-brush-selection-left-text\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"g\");\n        dom.setAttribute(el1,\"class\",\"nf-brush-selection-right-display\");\n        var el2 = dom.createTextNode(\"\\n\t\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"rect\");\n        dom.setAttribute(el2,\"class\",\"nf-brush-selection-right-text-bg\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\t\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"text\");\n        dom.setAttribute(el2,\"class\",\"nf-brush-selection-right-text\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(fragment, [2]);\n        var element2 = dom.childAt(fragment, [4]);\n        var element3 = dom.childAt(fragment, [6]);\n        var morphs = new Array(11);\n        morphs[0] = dom.createAttrMorph(element0, 'width');\n        morphs[1] = dom.createAttrMorph(element0, 'height');\n        morphs[2] = dom.createAttrMorph(element1, 'x');\n        morphs[3] = dom.createAttrMorph(element1, 'width');\n        morphs[4] = dom.createAttrMorph(element1, 'height');\n        morphs[5] = dom.createAttrMorph(element2, 'x1');\n        morphs[6] = dom.createAttrMorph(element2, 'x2');\n        morphs[7] = dom.createAttrMorph(element2, 'y2');\n        morphs[8] = dom.createAttrMorph(element3, 'x1');\n        morphs[9] = dom.createAttrMorph(element3, 'x2');\n        morphs[10] = dom.createAttrMorph(element3, 'y2');\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"width\",[\"concat\",[[\"get\",\"leftX\",[\"loc\",[null,[1,62],[1,67]]]]]]],\n        [\"attribute\",\"height\",[\"concat\",[[\"get\",\"graphHeight\",[\"loc\",[null,[1,81],[1,92]]]]]]],\n        [\"attribute\",\"x\",[\"concat\",[[\"get\",\"rightX\",[\"loc\",[null,[2,52],[2,58]]]]]]],\n        [\"attribute\",\"width\",[\"concat\",[[\"get\",\"rightWidth\",[\"loc\",[null,[2,71],[2,81]]]]]]],\n        [\"attribute\",\"height\",[\"concat\",[[\"get\",\"graphHeight\",[\"loc\",[null,[2,95],[2,106]]]]]]],\n        [\"attribute\",\"x1\",[\"concat\",[[\"get\",\"leftX\",[\"loc\",[null,[4,51],[4,56]]]]]]],\n        [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"leftX\",[\"loc\",[null,[4,66],[4,71]]]]]]],\n        [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"graphHeight\",[\"loc\",[null,[4,81],[4,92]]]]]]],\n        [\"attribute\",\"x1\",[\"concat\",[[\"get\",\"rightX\",[\"loc\",[null,[5,51],[5,57]]]]]]],\n        [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"rightX\",[\"loc\",[null,[5,67],[5,73]]]]]]],\n        [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"graphHeight\",[\"loc\",[null,[5,83],[5,94]]]]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-crosshair', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 84\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-crosshair.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"line\");\n        dom.setAttribute(el1,\"class\",\"nf-crosshair-vertical\");\n        dom.setAttribute(el1,\"y1\",\"0\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"line\");\n        dom.setAttribute(el1,\"class\",\"nf-crosshair-horizontal\");\n        dom.setAttribute(el1,\"x1\",\"0\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(fragment, [2]);\n        var morphs = new Array(6);\n        morphs[0] = dom.createAttrMorph(element0, 'x1');\n        morphs[1] = dom.createAttrMorph(element0, 'x2');\n        morphs[2] = dom.createAttrMorph(element0, 'y2');\n        morphs[3] = dom.createAttrMorph(element1, 'x2');\n        morphs[4] = dom.createAttrMorph(element1, 'y1');\n        morphs[5] = dom.createAttrMorph(element1, 'y2');\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"x1\",[\"concat\",[[\"get\",\"x\",[\"loc\",[null,[1,42],[1,43]]]]]]],\n        [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"x\",[\"loc\",[null,[1,53],[1,54]]]]]]],\n        [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"height\",[\"loc\",[null,[1,71],[1,77]]]]]]],\n        [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"width\",[\"loc\",[null,[2,51],[2,56]]]]]]],\n        [\"attribute\",\"y1\",[\"concat\",[[\"get\",\"y\",[\"loc\",[null,[2,66],[2,67]]]]]]],\n        [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"y\",[\"loc\",[null,[2,77],[2,78]]]]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-graph-content', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 7,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 9,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/nf-graph-content.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"rect\");\n              dom.setAttribute(el1,\"class\",\"nf-grid-lane\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element1 = dom.childAt(fragment, [1]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createAttrMorph(element1, 'x');\n              morphs[1] = dom.createAttrMorph(element1, 'y');\n              morphs[2] = dom.createAttrMorph(element1, 'width');\n              morphs[3] = dom.createAttrMorph(element1, 'height');\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"x\",[\"concat\",[[\"get\",\"lane.x\",[\"loc\",[null,[8,42],[8,48]]]]]]],\n              [\"attribute\",\"y\",[\"concat\",[[\"get\",\"lane.y\",[\"loc\",[null,[8,57],[8,63]]]]]]],\n              [\"attribute\",\"width\",[\"concat\",[[\"get\",\"width\",[\"loc\",[null,[8,76],[8,81]]]]]]],\n              [\"attribute\",\"height\",[\"concat\",[[\"get\",\"lane.height\",[\"loc\",[null,[8,95],[8,106]]]]]]]\n            ],\n            locals: [\"lane\"],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 11,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/nf-graph-content.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"g\");\n            dom.setAttribute(el1,\"class\",\"nf-grid-lanes\");\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"each\",[[\"get\",\"gridLanes\",[\"loc\",[null,[7,16],[7,25]]]]],[],0,null,[\"loc\",[null,[7,8],[9,17]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 15,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 17,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/nf-graph-content.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"line\");\n              dom.setAttribute(el1,\"class\",\"nf-grid-fret\");\n              dom.setAttribute(el1,\"y1\",\"0\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [1]);\n              var morphs = new Array(3);\n              morphs[0] = dom.createAttrMorph(element0, 'x1');\n              morphs[1] = dom.createAttrMorph(element0, 'x2');\n              morphs[2] = dom.createAttrMorph(element0, 'y2');\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"x1\",[\"concat\",[[\"get\",\"fret.x\",[\"loc\",[null,[16,43],[16,49]]]]]]],\n              [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"fret.x\",[\"loc\",[null,[16,66],[16,72]]]]]]],\n              [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"height\",[\"loc\",[null,[16,82],[16,88]]]]]]]\n            ],\n            locals: [\"fret\"],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 13,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 19,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/nf-graph-content.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"g\");\n            dom.setAttribute(el1,\"class\",\"nf-grid-frets\");\n            var el2 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"each\",[[\"get\",\"frets\",[\"loc\",[null,[15,16],[15,21]]]]],[],0,null,[\"loc\",[null,[15,8],[17,17]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 20,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-graph-content.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"graph.showLanes\",[\"loc\",[null,[5,10],[5,25]]]]],[],0,null,[\"loc\",[null,[5,4],[11,11]]]],\n          [\"block\",\"if\",[[\"get\",\"graph.showFrets\",[\"loc\",[null,[13,10],[13,25]]]]],[],1,null,[\"loc\",[null,[13,4],[19,11]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 22,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 24,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-graph-content.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"text\");\n          dom.setAttribute(el1,\"x\",\"0\");\n          dom.setAttribute(el1,\"y\",\"0\");\n          var el2 = dom.createTextNode(\"No data\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 27,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-graph-content.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"rect\");\n        dom.setAttribute(el1,\"x\",\"0\");\n        dom.setAttribute(el1,\"y\",\"0\");\n        dom.setAttribute(el1,\"class\",\"nf-graph-content-background\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element2 = dom.childAt(fragment, [0]);\n        var morphs = new Array(5);\n        morphs[0] = dom.createAttrMorph(element2, 'width');\n        morphs[1] = dom.createAttrMorph(element2, 'height');\n        morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n        morphs[3] = dom.createMorphAt(fragment,4,4,contextualElement);\n        morphs[4] = dom.createMorphAt(fragment,6,6,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"width\",[\"concat\",[[\"get\",\"width\",[\"loc\",[null,[1,59],[1,64]]]]]]],\n        [\"attribute\",\"height\",[\"concat\",[[\"get\",\"height\",[\"loc\",[null,[1,78],[1,84]]]]]]],\n        [\"block\",\"if\",[[\"get\",\"graph.hasData\",[\"loc\",[null,[4,8],[4,21]]]]],[],0,null,[\"loc\",[null,[4,2],[20,9]]]],\n        [\"block\",\"unless\",[[\"get\",\"graph.hasData\",[\"loc\",[null,[22,12],[22,25]]]]],[],1,null,[\"loc\",[null,[22,2],[24,13]]]],\n        [\"content\",\"yield\",[\"loc\",[null,[27,0],[27,9]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-graph', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 15,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 19,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-graph.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"style\",\"position:relative\");\n          var el2 = dom.createTextNode(\"\\n\t\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"pre\");\n          dom.setAttribute(el2,\"style\",\"position:absolute; z-index:1000\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0, 1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"debugInfo\",[\"loc\",[null,[17,46],[17,59]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 19,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-graph.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        dom.setNamespace(\"http://www.w3.org/2000/svg\");\n        var el1 = dom.createElement(\"svg\");\n        dom.setAttribute(el1,\"class\",\"nf-graph\");\n        var el2 = dom.createTextNode(\"\\n\t\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"defs\");\n        var el3 = dom.createTextNode(\"\\n\t\t\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"clipPath\");\n        var el4 = dom.createTextNode(\"\\n\t\t\t\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"rect\");\n        dom.setAttribute(el4,\"x\",\"0\");\n        dom.setAttribute(el4,\"y\",\"0\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\t\t\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\t\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\t\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"rect\");\n        dom.setAttribute(el2,\"class\",\"nf-graph-background\");\n        dom.setAttribute(el2,\"x\",\"0\");\n        dom.setAttribute(el2,\"y\",\"0\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [1, 1]);\n        var element2 = dom.childAt(element1, [1]);\n        var element3 = dom.childAt(element0, [3]);\n        var morphs = new Array(9);\n        morphs[0] = dom.createAttrMorph(element0, 'width');\n        morphs[1] = dom.createAttrMorph(element0, 'height');\n        morphs[2] = dom.createAttrMorph(element1, 'id');\n        morphs[3] = dom.createAttrMorph(element2, 'width');\n        morphs[4] = dom.createAttrMorph(element2, 'height');\n        morphs[5] = dom.createAttrMorph(element3, 'width');\n        morphs[6] = dom.createAttrMorph(element3, 'height');\n        morphs[7] = dom.createMorphAt(element0,5,5);\n        morphs[8] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"width\",[\"concat\",[[\"get\",\"width\",[\"loc\",[null,[1,31],[1,36]]]]]]],\n        [\"attribute\",\"height\",[\"concat\",[[\"get\",\"height\",[\"loc\",[null,[1,50],[1,56]]]]]]],\n        [\"attribute\",\"id\",[\"concat\",[[\"get\",\"contentClipPathId\",[\"loc\",[null,[3,18],[3,35]]]]]]],\n        [\"attribute\",\"width\",[\"concat\",[[\"get\",\"graphWidth\",[\"loc\",[null,[4,26],[4,36]]]]]]],\n        [\"attribute\",\"height\",[\"concat\",[[\"get\",\"graphHeight\",[\"loc\",[null,[4,50],[4,61]]]]]]],\n        [\"attribute\",\"width\",[\"concat\",[[\"get\",\"width\",[\"loc\",[null,[8,52],[8,57]]]]]]],\n        [\"attribute\",\"height\",[\"concat\",[[\"get\",\"height\",[\"loc\",[null,[8,71],[8,77]]]]]]],\n        [\"content\",\"yield\",[\"loc\",[null,[10,2],[10,11]]]],\n        [\"block\",\"if\",[[\"get\",\"debug\",[\"loc\",[null,[15,6],[15,11]]]]],[],0,null,[\"loc\",[null,[15,0],[19,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-line', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 2,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-line.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\t\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"path\");\n          dom.setAttribute(el1,\"class\",\"nf-line-interaction-mask\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createAttrMorph(element0, 'd');\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"d\",[\"concat\",[[\"get\",\"d\",[\"loc\",[null,[3,45],[3,46]]]]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 6,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 8,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-line.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\t\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"nf-dot\",[],[\"class\",\"nf-line-tracking-dot\",\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"trackedData.renderX\",[\"loc\",[null,[7,41],[7,60]]]]],[],[]],\"y\",[\"subexpr\",\"@mut\",[[\"get\",\"trackedData.renderY\",[\"loc\",[null,[7,63],[7,82]]]]],[],[]],\"r\",[\"subexpr\",\"@mut\",[[\"get\",\"trackingDotRadius\",[\"loc\",[null,[7,85],[7,102]]]]],[],[]]],[\"loc\",[null,[7,1],[7,104]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 8,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-line.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"path\");\n        dom.setAttribute(el1,\"class\",\"nf-line-line\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element1 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createAttrMorph(element1, 'd');\n        morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n        morphs[2] = dom.createMorphAt(fragment,4,4,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"d\",[\"concat\",[[\"get\",\"d\",[\"loc\",[null,[1,32],[1,33]]]]]]],\n        [\"block\",\"if\",[[\"get\",\"selectable\",[\"loc\",[null,[2,6],[2,16]]]]],[],0,null,[\"loc\",[null,[2,0],[4,7]]]],\n        [\"block\",\"if\",[[\"get\",\"showTrackingDot\",[\"loc\",[null,[6,6],[6,21]]]]],[],1,null,[\"loc\",[null,[6,0],[8,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-plots', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 2,\n                \"column\": 1\n              },\n              \"end\": {\n                \"line\": 4,\n                \"column\": 1\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/nf-plots.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"\t\t\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"yield\",[\"loc\",[null,[3,2],[3,11]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-plots.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"nf-plot\",[],[\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"item.x\",[\"loc\",[null,[2,14],[2,20]]]]],[],[]],\"y\",[\"subexpr\",\"@mut\",[[\"get\",\"item.y\",[\"loc\",[null,[2,23],[2,29]]]]],[],[]],\"action\",\"itemClicked\",\"data\",[\"subexpr\",\"@mut\",[[\"get\",\"item.data\",[\"loc\",[null,[2,56],[2,65]]]]],[],[]],\"multiplierY\",[\"subexpr\",\"@mut\",[[\"get\",\"multiplierY\",[\"loc\",[null,[2,78],[2,89]]]]],[],[]],\"multiplierX\",[\"subexpr\",\"@mut\",[[\"get\",\"multiplierX\",[\"loc\",[null,[2,102],[2,113]]]]],[],[]]],0,null,[\"loc\",[null,[2,1],[4,13]]]]\n        ],\n        locals: [\"item\"],\n        templates: [child0]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 5,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-plots.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"plotData\",[\"loc\",[null,[1,8],[1,16]]]]],[],0,null,[\"loc\",[null,[1,0],[5,9]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-range-marker', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 110\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-range-marker.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"g\");\n        dom.setAttribute(el1,\"class\",\"nf-range-marker-label\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"rect\");\n        dom.setAttribute(el1,\"class\",\"nf-range-marker-marker\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(fragment, [2]);\n        var morphs = new Array(6);\n        morphs[0] = dom.createAttrMorph(element0, 'transform');\n        morphs[1] = dom.createMorphAt(element0,0,0);\n        morphs[2] = dom.createAttrMorph(element1, 'y');\n        morphs[3] = dom.createAttrMorph(element1, 'x');\n        morphs[4] = dom.createAttrMorph(element1, 'width');\n        morphs[5] = dom.createAttrMorph(element1, 'height');\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"transform\",[\"concat\",[[\"get\",\"labelTransform\",[\"loc\",[null,[1,46],[1,60]]]]]]],\n        [\"content\",\"yield\",[\"loc\",[null,[1,64],[1,73]]]],\n        [\"attribute\",\"y\",[\"concat\",[[\"get\",\"marginTop\",[\"loc\",[null,[2,42],[2,51]]]]]]],\n        [\"attribute\",\"x\",[\"concat\",[[\"get\",\"x\",[\"loc\",[null,[2,60],[2,61]]]]]]],\n        [\"attribute\",\"width\",[\"concat\",[[\"get\",\"width\",[\"loc\",[null,[2,74],[2,79]]]]]]],\n        [\"attribute\",\"height\",[\"concat\",[[\"get\",\"height\",[\"loc\",[null,[2,93],[2,99]]]]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-right-tick', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 58\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-right-tick.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"line\");\n        dom.setAttribute(el1,\"class\",\"nf-right-tick-line\");\n        dom.setAttribute(el1,\"y1\",\"0\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"path\");\n        dom.setAttribute(el1,\"class\",\"nf-right-tick-path\");\n        dom.setAttribute(el1,\"d\",\"M6,0 0,6 6,12\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createAttrMorph(element0, 'x1');\n        morphs[1] = dom.createAttrMorph(element0, 'x2');\n        morphs[2] = dom.createAttrMorph(element0, 'y2');\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"x1\",[\"concat\",[[\"get\",\"graph.width\",[\"loc\",[null,[1,39],[1,50]]]]]]],\n        [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"graph.width\",[\"loc\",[null,[1,60],[1,71]]]]]]],\n        [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"graph.height\",[\"loc\",[null,[1,88],[1,100]]]]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-table-manager', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 10,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-table-manager.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"nf-table\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"table\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"thead\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"tr\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0, 1, 1, 1]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"yield\",[\"loc\",[null,[5,8],[5,17]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-tick-label', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-tick-label.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"yield\",[\"loc\",[null,[1,0],[1,9]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-tracker', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 21\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-tracker.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"yield\",[[\"get\",\"trackedData\",[\"loc\",[null,[1,8],[1,19]]]]],[],[\"loc\",[null,[1,0],[1,21]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-x-axis', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 6,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 8,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/nf-x-axis.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"yield\",[[\"get\",\"tick\",[\"loc\",[null,[7,16],[7,20]]]]],[],[\"loc\",[null,[7,8],[7,22]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 9,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/nf-x-axis.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"nf-tick-label\",[],[\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"tick.x\",[\"loc\",[null,[6,25],[6,31]]]]],[],[]],\"y\",[\"subexpr\",\"@mut\",[[\"get\",\"tick.labely\",[\"loc\",[null,[6,34],[6,45]]]]],[],[]]],0,null,[\"loc\",[null,[6,6],[8,24]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 10,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 12,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/nf-x-axis.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"text\");\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"tick.value\",[\"loc\",[null,[11,14],[11,28]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 9,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 13,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/nf-x-axis.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"nf-tick-label\",[],[\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"tick.x\",[\"loc\",[null,[10,25],[10,31]]]]],[],[]],\"y\",[\"subexpr\",\"@mut\",[[\"get\",\"tick.labely\",[\"loc\",[null,[10,34],[10,45]]]]],[],[]]],0,null,[\"loc\",[null,[10,6],[12,24]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 17,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-x-axis.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"g\");\n          dom.setAttribute(el1,\"class\",\"nf-x-axis-tick\");\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"line\");\n          dom.setAttribute(el2,\"class\",\"nf-x-axis-tick-line\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var element1 = dom.childAt(element0, [3]);\n          var morphs = new Array(5);\n          morphs[0] = dom.createMorphAt(element0,1,1);\n          morphs[1] = dom.createAttrMorph(element1, 'x1');\n          morphs[2] = dom.createAttrMorph(element1, 'y1');\n          morphs[3] = dom.createAttrMorph(element1, 'x2');\n          morphs[4] = dom.createAttrMorph(element1, 'y2');\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"useTemplate\",[\"loc\",[null,[5,10],[5,21]]]]],[],0,1,[\"loc\",[null,[5,4],[13,11]]]],\n          [\"attribute\",\"x1\",[\"concat\",[[\"get\",\"tick.x\",[\"loc\",[null,[15,44],[15,50]]]]]]],\n          [\"attribute\",\"y1\",[\"concat\",[[\"get\",\"tick.y1\",[\"loc\",[null,[15,60],[15,67]]]]]]],\n          [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"tick.x\",[\"loc\",[null,[15,77],[15,83]]]]]]],\n          [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"tick.y2\",[\"loc\",[null,[15,93],[15,100]]]]]]]\n        ],\n        locals: [\"tick\"],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 18,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-x-axis.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"line\");\n        dom.setAttribute(el1,\"class\",\"nf-x-axis-line\");\n        dom.setAttribute(el1,\"x1\",\"0\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element2 = dom.childAt(fragment, [0]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createAttrMorph(element2, 'y1');\n        morphs[1] = dom.createAttrMorph(element2, 'x2');\n        morphs[2] = dom.createAttrMorph(element2, 'y2');\n        morphs[3] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"y1\",[\"concat\",[[\"get\",\"axisLineY\",[\"loc\",[null,[1,42],[1,51]]]]]]],\n        [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"width\",[\"loc\",[null,[1,61],[1,66]]]]]]],\n        [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"axisLineY\",[\"loc\",[null,[1,76],[1,85]]]]]]],\n        [\"block\",\"each\",[[\"get\",\"ticks\",[\"loc\",[null,[3,8],[3,13]]]]],[],0,null,[\"loc\",[null,[3,0],[17,9]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-y-axis', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 6,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 8,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/nf-y-axis.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"yield\",[[\"get\",\"tick\",[\"loc\",[null,[7,16],[7,20]]]]],[],[\"loc\",[null,[7,8],[7,22]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 9,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/nf-y-axis.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"nf-tick-label\",[],[\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"tick.labelx\",[\"loc\",[null,[6,25],[6,36]]]]],[],[]],\"y\",[\"subexpr\",\"@mut\",[[\"get\",\"tick.y\",[\"loc\",[null,[6,39],[6,45]]]]],[],[]]],0,null,[\"loc\",[null,[6,6],[8,24]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 10,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 12,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/components/nf-y-axis.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"text\");\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"tick.value\",[\"loc\",[null,[11,14],[11,28]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 9,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 13,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/nf-y-axis.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"nf-tick-label\",[],[\"x\",[\"subexpr\",\"@mut\",[[\"get\",\"tick.labelx\",[\"loc\",[null,[10,25],[10,36]]]]],[],[]],\"y\",[\"subexpr\",\"@mut\",[[\"get\",\"tick.y\",[\"loc\",[null,[10,39],[10,45]]]]],[],[]]],0,null,[\"loc\",[null,[10,6],[12,24]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 17,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/nf-y-axis.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"g\");\n          dom.setAttribute(el1,\"class\",\"nf-y-axis-tick\");\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"line\");\n          dom.setAttribute(el2,\"class\",\"nf-y-axis-tick-line\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var element1 = dom.childAt(element0, [3]);\n          var morphs = new Array(5);\n          morphs[0] = dom.createMorphAt(element0,1,1);\n          morphs[1] = dom.createAttrMorph(element1, 'x1');\n          morphs[2] = dom.createAttrMorph(element1, 'y1');\n          morphs[3] = dom.createAttrMorph(element1, 'x2');\n          morphs[4] = dom.createAttrMorph(element1, 'y2');\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"useTemplate\",[\"loc\",[null,[5,10],[5,21]]]]],[],0,1,[\"loc\",[null,[5,4],[13,11]]]],\n          [\"attribute\",\"x1\",[\"concat\",[[\"get\",\"tick.x1\",[\"loc\",[null,[15,44],[15,51]]]]]]],\n          [\"attribute\",\"y1\",[\"concat\",[[\"get\",\"tick.y\",[\"loc\",[null,[15,61],[15,67]]]]]]],\n          [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"tick.x2\",[\"loc\",[null,[15,77],[15,84]]]]]]],\n          [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"tick.y\",[\"loc\",[null,[15,94],[15,100]]]]]]]\n        ],\n        locals: [\"tick\"],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 18,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-y-axis.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"line\");\n        dom.setAttribute(el1,\"class\",\"nf-y-axis-line\");\n        dom.setAttribute(el1,\"y1\",\"0\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element2 = dom.childAt(fragment, [0]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createAttrMorph(element2, 'x1');\n        morphs[1] = dom.createAttrMorph(element2, 'x2');\n        morphs[2] = dom.createAttrMorph(element2, 'y2');\n        morphs[3] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"x1\",[\"concat\",[[\"get\",\"axisLineX\",[\"loc\",[null,[1,35],[1,44]]]]]]],\n        [\"attribute\",\"x2\",[\"concat\",[[\"get\",\"axisLineX\",[\"loc\",[null,[1,61],[1,70]]]]]]],\n        [\"attribute\",\"y2\",[\"concat\",[[\"get\",\"height\",[\"loc\",[null,[1,80],[1,86]]]]]]],\n        [\"block\",\"each\",[[\"get\",\"ticks\",[\"loc\",[null,[3,8],[3,13]]]]],[],0,null,[\"loc\",[null,[3,0],[17,9]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/nf-y-diff', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 3,\n            \"column\": 4\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/nf-y-diff.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"g\");\n        dom.setAttribute(el1,\"class\",\"nf-y-diff-content\");\n        var el2 = dom.createTextNode(\"\\n\t\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"yield\",[\"loc\",[null,[2,1],[2,10]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/onboarding-header', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 9,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/onboarding-header.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto onboardingHeader-nav-step bg-green\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 10,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 12,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/onboarding-header.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"flex-auto onboardingHeader-nav-step bg-grayLighter\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 15,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/onboarding-header.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px3 my3\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex flex-center\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"img\");\n        dom.setAttribute(el3,\"class\",\"mr1 align-middle\");\n        dom.setAttribute(el3,\"src\",\"/assets/images/logo-small-red.svg\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"flex-auto\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"h6 bold mr1\");\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" of \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"nav\");\n        dom.setAttribute(el3,\"class\",\"onboardingHeader-nav flex\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var element1 = dom.childAt(element0, [5]);\n        var element2 = dom.childAt(element0, [7]);\n        var morphs = new Array(4);\n        morphs[0] = dom.createMorphAt(element1,0,0);\n        morphs[1] = dom.createMorphAt(element1,2,2);\n        morphs[2] = dom.createMorphAt(element2,1,1);\n        morphs[3] = dom.createMorphAt(element2,2,2);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"stepNumber\",[\"loc\",[null,[5,30],[5,44]]]],\n        [\"content\",\"totalSteps\",[\"loc\",[null,[5,48],[5,62]]]],\n        [\"block\",\"up-to\",[],[\"count\",[\"subexpr\",\"@mut\",[[\"get\",\"stepNumber\",[\"loc\",[null,[7,21],[7,31]]]]],[],[]]],0,null,[\"loc\",[null,[7,6],[9,16]]]],\n        [\"block\",\"up-to\",[],[\"count\",[\"subexpr\",\"@mut\",[[\"get\",\"remainingSteps\",[\"loc\",[null,[10,21],[10,35]]]]],[],[]]],1,null,[\"loc\",[null,[10,6],[12,16]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/payment-row', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 6,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/payment-row.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"green\");\n          var el2 = dom.createTextNode(\"(\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\")\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"formatted-currency\",[[\"get\",\"amountRefunded\",[\"loc\",[null,[5,46],[5,60]]]]],[],[\"loc\",[null,[5,25],[5,62]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/payment-row.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"downloadPdf\");\n          var el2 = dom.createTextNode(\"PDF\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createAttrMorph(element0, 'href');\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"href\",[\"get\",\"pdf\",[\"loc\",[null,[10,14],[10,17]]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 14,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/payment-row.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"td\");\n        dom.setAttribute(el1,\"class\",\"js-payment-date py1\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"td\");\n        dom.setAttribute(el1,\"class\",\"py1\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"td\");\n        dom.setAttribute(el1,\"class\",\"py1\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"td\");\n        dom.setAttribute(el1,\"class\",\"py1\");\n        var el2 = dom.createElement(\"span\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\" \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element1 = dom.childAt(fragment, [2]);\n        var element2 = dom.childAt(fragment, [6]);\n        var element3 = dom.childAt(element2, [0]);\n        var morphs = new Array(6);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),0,0);\n        morphs[1] = dom.createMorphAt(element1,1,1);\n        morphs[2] = dom.createMorphAt(element1,3,3);\n        morphs[3] = dom.createMorphAt(dom.childAt(fragment, [4]),1,1);\n        morphs[4] = dom.createAttrMorph(element3, 'class');\n        morphs[5] = dom.createMorphAt(element2,2,2);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"moment-format\",[[\"get\",\"date\",[\"loc\",[null,[1,48],[1,52]]]],\"MMM D, YYYY\"],[],[\"loc\",[null,[1,32],[1,68]]]],\n        [\"inline\",\"formatted-currency\",[[\"get\",\"amount\",[\"loc\",[null,[3,23],[3,29]]]]],[],[\"loc\",[null,[3,2],[3,31]]]],\n        [\"block\",\"if\",[[\"get\",\"refunded\",[\"loc\",[null,[4,8],[4,16]]]]],[],0,null,[\"loc\",[null,[4,2],[6,9]]]],\n        [\"block\",\"if\",[[\"get\",\"pdf\",[\"loc\",[null,[9,8],[9,11]]]]],[],1,null,[\"loc\",[null,[9,2],[11,9]]]],\n        [\"attribute\",\"class\",[\"get\",\"status.classes\",[\"loc\",[null,[13,30],[13,44]]]]],\n        [\"content\",\"status.text\",[\"loc\",[null,[13,55],[13,70]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/plan-button', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 14\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/plan-button.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"buttonText\",[\"loc\",[null,[1,0],[1,14]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/plan-ledger', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 2,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/plan-ledger.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"tr\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"p1 js-line-item-description\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"right-align p1 js-line-item-price js-ledger-price\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"js-newPeriod\");\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element4 = dom.childAt(fragment, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createAttrMorph(element4, 'class');\n          morphs[1] = dom.createMorphAt(dom.childAt(element4, [1]),1,1);\n          morphs[2] = dom.createMorphAt(dom.childAt(element4, [3, 1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"class\",[\"concat\",[\"js-line-item-location \",[\"subexpr\",\"if\",[[\"get\",\"lineItem.location.isNew\",[\"loc\",[null,[3,42],[3,65]]]],\"priceUpdated\"],[],[\"loc\",[null,[3,37],[3,82]]]],\" \",[\"subexpr\",\"if\",[[\"get\",\"isPlanChanging\",[\"loc\",[null,[3,88],[3,102]]]],\"priceUpdated\"],[],[\"loc\",[null,[3,83],[3,119]]]]]]],\n          [\"content\",\"lineItem.description\",[\"loc\",[null,[5,8],[5,32]]]],\n          [\"inline\",\"formatted-currency\",[[\"get\",\"lineItem.amount\",[\"loc\",[null,[8,56],[8,71]]]]],[],[\"loc\",[null,[8,35],[8,73]]]]\n        ],\n        locals: [\"lineItem\"],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 12,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 21,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/plan-ledger.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"tr\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"js-line-item-description green p1 js-discount\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"right-align green p1 js-ledger-price js-discount\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"js-discountChanged\");\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element3 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element3, [1]),1,1);\n          morphs[1] = dom.createMorphAt(dom.childAt(element3, [3, 1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"discountLineItem.description\",[\"loc\",[null,[15,8],[15,40]]]],\n          [\"inline\",\"formatted-currency\",[[\"get\",\"discountLineItem.amount\",[\"loc\",[null,[18,62],[18,85]]]]],[],[\"loc\",[null,[18,41],[18,87]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 35,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 40,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/plan-ledger.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"tr\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            dom.setAttribute(el2,\"class\",\"green p1 js-discount\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            dom.setAttribute(el2,\"class\",\"right-align green p1 js-ledger-price js-discount\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n            morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"proratedDiscount.description\",[\"loc\",[null,[37,41],[37,73]]]],\n            [\"inline\",\"formatted-currency\",[[\"get\",\"proratedDiscount.amount\",[\"loc\",[null,[38,90],[38,113]]]]],[],[\"loc\",[null,[38,69],[38,115]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 41,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 46,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/plan-ledger.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"tr\");\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            dom.setAttribute(el2,\"class\",\"green p1 js-discount\");\n            var el3 = dom.createTextNode(\"Credit Balance\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"td\");\n            dom.setAttribute(el2,\"class\",\"right-align green p1 js-ledger-price js-discount\");\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 3]),0,0);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"formatted-currency\",[[\"get\",\"creditBalance\",[\"loc\",[null,[44,90],[44,103]]]]],[],[\"loc\",[null,[44,69],[44,105]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 26,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 47,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/plan-ledger.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"tr\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"green p1 js-ledger-refund\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"right-align green p1\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"tr\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"p1 js-ledger-charge\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"td\");\n          dom.setAttribute(el2,\"class\",\"right-align p1 js-ledger-price\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var element2 = dom.childAt(fragment, [3]);\n          var morphs = new Array(6);\n          morphs[0] = dom.createMorphAt(dom.childAt(element1, [1]),0,0);\n          morphs[1] = dom.createMorphAt(dom.childAt(element1, [3]),0,0);\n          morphs[2] = dom.createMorphAt(dom.childAt(element2, [1]),0,0);\n          morphs[3] = dom.createMorphAt(dom.childAt(element2, [3]),0,0);\n          morphs[4] = dom.createMorphAt(fragment,5,5,contextualElement);\n          morphs[5] = dom.createMorphAt(fragment,6,6,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"refundLineItem.description\",[\"loc\",[null,[28,44],[28,74]]]],\n          [\"inline\",\"formatted-currency\",[[\"get\",\"refundLineItem.amount\",[\"loc\",[null,[29,60],[29,81]]]]],[],[\"loc\",[null,[29,39],[29,83]]]],\n          [\"content\",\"chargeLineItem.description\",[\"loc\",[null,[32,38],[32,68]]]],\n          [\"inline\",\"formatted-currency\",[[\"get\",\"chargeLineItem.amount\",[\"loc\",[null,[33,70],[33,91]]]]],[],[\"loc\",[null,[33,49],[33,93]]]],\n          [\"block\",\"if\",[[\"get\",\"proratedDiscount\",[\"loc\",[null,[35,10],[35,26]]]]],[],0,null,[\"loc\",[null,[35,4],[40,11]]]],\n          [\"block\",\"if\",[[\"get\",\"hasCreditBalance\",[\"loc\",[null,[41,10],[41,26]]]]],[],1,null,[\"loc\",[null,[41,4],[46,11]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 53,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/plan-ledger.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"table\");\n        dom.setAttribute(el1,\"class\",\"table-light\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"tr\");\n        dom.setAttribute(el2,\"class\",\"total\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"td\");\n        dom.setAttribute(el3,\"class\",\"bold p1\");\n        var el4 = dom.createTextNode(\"New \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" Total\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"td\");\n        dom.setAttribute(el3,\"class\",\"bold p1 right-align\");\n        var el4 = dom.createElement(\"span\");\n        dom.setAttribute(el4,\"class\",\"js-newPeriod\");\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"tr\");\n        dom.setAttribute(el2,\"class\",\"bg-yellow-10 bold js-total-now\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"td\");\n        dom.setAttribute(el3,\"class\",\"js-due-now p1\");\n        var el4 = dom.createTextNode(\"Due Now \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"span\");\n        dom.setAttribute(el4,\"class\",\"gray\");\n        var el5 = dom.createTextNode(\"(Today until renewal on \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\")\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"td\");\n        dom.setAttribute(el3,\"class\",\"right-align p1 js-ledger-price\");\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element5 = dom.childAt(fragment, [0]);\n        var element6 = dom.childAt(element5, [4]);\n        var element7 = dom.childAt(element5, [8]);\n        var morphs = new Array(8);\n        morphs[0] = dom.createMorphAt(element5,1,1);\n        morphs[1] = dom.createMorphAt(element5,2,2);\n        morphs[2] = dom.createMorphAt(dom.childAt(element6, [1]),1,1);\n        morphs[3] = dom.createMorphAt(dom.childAt(element6, [3, 0]),0,0);\n        morphs[4] = dom.createMorphAt(element5,6,6);\n        morphs[5] = dom.createElementMorph(element7);\n        morphs[6] = dom.createMorphAt(dom.childAt(element7, [1, 1]),1,1);\n        morphs[7] = dom.createMorphAt(dom.childAt(element7, [3]),0,0);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"locationLineItems\",[\"loc\",[null,[2,10],[2,27]]]]],[],0,null,[\"loc\",[null,[2,2],[11,11]]]],\n        [\"block\",\"if\",[[\"get\",\"discountLineItem\",[\"loc\",[null,[12,8],[12,24]]]]],[],1,null,[\"loc\",[null,[12,2],[21,9]]]],\n        [\"inline\",\"capitalize-word\",[[\"get\",\"newPeriod\",[\"loc\",[null,[23,46],[23,55]]]]],[],[\"loc\",[null,[23,28],[23,57]]]],\n        [\"inline\",\"formatted-currency\",[[\"get\",\"totalPrice\",[\"loc\",[null,[24,84],[24,94]]]]],[],[\"loc\",[null,[24,63],[24,96]]]],\n        [\"block\",\"if\",[[\"get\",\"debug\",[\"loc\",[null,[26,8],[26,13]]]]],[],2,null,[\"loc\",[null,[26,2],[47,9]]]],\n        [\"element\",\"action\",[\"toggleDebug\"],[],[\"loc\",[null,[48,45],[48,69]]]],\n        [\"content\",\"renewalDate\",[\"loc\",[null,[49,81],[49,96]]]],\n        [\"inline\",\"formatted-currency\",[[\"get\",\"dueNow\",[\"loc\",[null,[50,68],[50,74]]]]],[],[\"loc\",[null,[50,47],[50,76]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/components/pre-registration-email-preview', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 9,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/pre-registration-email-preview.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"textarea\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.preRegistrationNotes\",[\"loc\",[null,[7,19],[7,45]]]]],[],[]],\"classNames\",\"preRegistrationNotes mt2 h5 p2\"],[\"loc\",[null,[7,2],[7,91]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 32,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 34,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/pre-registration-email-preview.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"previewEmailObject.subject\",[\"loc\",[null,[33,14],[33,44]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 34,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 36,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/pre-registration-email-preview.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              Loading...\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 43,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 45,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/pre-registration-email-preview.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"iframe\");\n            dom.setAttribute(el1,\"class\",\"preRegistrationHtml\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createAttrMorph(element0, 'srcdoc');\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"srcdoc\",[\"get\",\"previewEmailObject.body\",[\"loc\",[null,[44,49],[44,72]]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 45,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 49,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/components/pre-registration-email-preview.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"preRegistrationHtml relative\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"partial\",[\"loading\"],[],[\"loc\",[null,[47,6],[47,27]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 50,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/pre-registration-email-preview.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"preRegistrationHtmlHeader\");\n          var el2 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"macStopLights\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"red\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"yellow\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"green\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"table\");\n          dom.setAttribute(el2,\"class\",\"macMailHeader\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"tr\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          dom.setAttribute(el4,\"class\",\"leftSide\");\n          var el5 = dom.createTextNode(\"From:\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          var el5 = dom.createTextNode(\"Envoy \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"span\");\n          dom.setAttribute(el5,\"class\",\"address\");\n          var el6 = dom.createTextNode(\"<no-reply@signwithenvoy.com>\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"tr\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          dom.setAttribute(el4,\"class\",\"leftSide\");\n          var el5 = dom.createTextNode(\"To:\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\" \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"span\");\n          dom.setAttribute(el5,\"class\",\"address\");\n          var el6 = dom.createTextNode(\"<\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createTextNode(\">\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"tr\");\n          dom.setAttribute(el3,\"class\",\"subject\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          dom.setAttribute(el4,\"class\",\"leftSide\");\n          var el5 = dom.createTextNode(\"Subject:\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          var el5 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"strong\");\n          dom.setAttribute(el5,\"class\",\"js-email-preview-subject\");\n          var el6 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createTextNode(\"          \");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var element2 = dom.childAt(element1, [3]);\n          var element3 = dom.childAt(element2, [3, 3]);\n          var morphs = new Array(5);\n          morphs[0] = dom.createMorphAt(dom.childAt(element1, [1]),7,7);\n          morphs[1] = dom.createMorphAt(element3,0,0);\n          morphs[2] = dom.createMorphAt(dom.childAt(element3, [2]),1,1);\n          morphs[3] = dom.createMorphAt(dom.childAt(element2, [5, 3, 1]),1,1);\n          morphs[4] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"async-button\",[],[\"action\",\"sendTestEmail\",\"default\",\"Send Test\",\"pending\",\"Sending...\",\"tagName\",\"a\",\"class\",[\"subexpr\",\"concat\",[\"sendTestPreRegistrationEmail\",\" \",[\"subexpr\",\"if\",[[\"get\",\"testEmailSent\",[]],\"sent\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[16,6],[16,167]]]],\n          [\"content\",\"currentLocation.admin.name\",[\"loc\",[null,[26,12],[26,42]]]],\n          [\"content\",\"currentLocation.admin.email\",[\"loc\",[null,[26,69],[26,100]]]],\n          [\"block\",\"if\",[[\"get\",\"previewEmailObject\",[\"loc\",[null,[32,18],[32,36]]]]],[],0,1,[\"loc\",[null,[32,12],[36,19]]]],\n          [\"block\",\"if\",[[\"get\",\"previewEmailObject\",[\"loc\",[null,[43,8],[43,26]]]]],[],2,3,[\"loc\",[null,[43,2],[49,9]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 85,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/pre-registration-email-preview.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"segmentedControlToggle\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        var el3 = dom.createTextNode(\"Edit text\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        var el3 = dom.createTextNode(\"Preview email\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"p\");\n        dom.setAttribute(el1,\"class\",\"mt2\");\n        var el2 = dom.createTextNode(\"Add formatting to your pre-registration email using Markdown. We’ve provided a quick cheat sheet below, or check out one of our favorite \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"a\");\n        dom.setAttribute(el2,\"href\",\"http://markdowntutorial.com/\");\n        dom.setAttribute(el2,\"target\",\"_blank\");\n        var el3 = dom.createTextNode(\"in-depth tutorials\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\".\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"clearfix mt2 border-top\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"table\");\n        dom.setAttribute(el2,\"class\",\"col col-6\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tr\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Header\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createTextNode(\"# Header 1\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"br\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"## Header 2\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"br\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"### Header 3\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tr\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Blockquote\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createTextNode(\"> Quoted text here\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tr\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Bulleted List\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createTextNode(\"* Item 1\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"br\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"* Item 2\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"br\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"* Item 3\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tr\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Numbered List\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createTextNode(\"1. Item 1\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"br\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"2. Item 2\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"br\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"3. Item 3\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"table\");\n        dom.setAttribute(el2,\"class\",\"col col-6\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tr\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Bold\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createTextNode(\"**Bold text**\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tr\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Italic\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createTextNode(\"*Italic text*\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tr\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Link\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createTextNode(\"[Link Title](http://link-url)\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"tr\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Image\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"td\");\n        dom.setAttribute(el4,\"class\",\"py2\");\n        var el5 = dom.createTextNode(\"![image-name](http://image-url)\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element4 = dom.childAt(fragment, [0]);\n        var element5 = dom.childAt(element4, [1]);\n        var element6 = dom.childAt(element4, [2]);\n        var morphs = new Array(5);\n        morphs[0] = dom.createAttrMorph(element5, 'class');\n        morphs[1] = dom.createElementMorph(element5);\n        morphs[2] = dom.createAttrMorph(element6, 'class');\n        morphs[3] = dom.createElementMorph(element6);\n        morphs[4] = dom.createMorphAt(fragment,2,2,contextualElement);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"concat\",[\"segmentedControlLeft \",[\"subexpr\",\"if\",[[\"get\",\"editEmailVisible\",[\"loc\",[null,[2,72],[2,88]]]],\"selected\"],[],[\"loc\",[null,[2,67],[2,101]]]]]]],\n        [\"element\",\"action\",[\"setEmailEditActive\"],[],[\"loc\",[null,[2,7],[2,38]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"segmentedControlRight \",[\"subexpr\",\"unless\",[[\"get\",\"editEmailVisible\",[\"loc\",[null,[2,196],[2,212]]]],\"selected\"],[],[\"loc\",[null,[2,187],[2,225]]]]]]],\n        [\"element\",\"action\",[\"setEmailPreviewActive\"],[],[\"loc\",[null,[2,123],[2,157]]]],\n        [\"block\",\"if\",[[\"get\",\"editEmailVisible\",[\"loc\",[null,[5,6],[5,22]]]]],[],0,1,[\"loc\",[null,[5,0],[50,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/components/search-loader', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 10,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/search-loader.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"search-loader\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.setNamespace(\"http://www.w3.org/2000/svg\");\n          var el2 = dom.createElement(\"svg\");\n          dom.setAttribute(el2,\"xmlns\",\"http://www.w3.org/2000/svg\");\n          dom.setAttribute(el2,\"viewBox\",\"0 0 32 32\");\n          dom.setAttribute(el2,\"width\",\"25\");\n          dom.setAttribute(el2,\"height\",\"25\");\n          dom.setAttribute(el2,\"fill\",\"white\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"path\");\n          dom.setAttribute(el3,\"opacity\",\".25\");\n          dom.setAttribute(el3,\"d\",\"M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"path\");\n          dom.setAttribute(el3,\"d\",\"M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"animateTransform\");\n          dom.setAttribute(el4,\"attributeName\",\"transform\");\n          dom.setAttribute(el4,\"type\",\"rotate\");\n          dom.setAttribute(el4,\"from\",\"0 16 16\");\n          dom.setAttribute(el4,\"to\",\"360 16 16\");\n          dom.setAttribute(el4,\"dur\",\"0.4s\");\n          dom.setAttribute(el4,\"repeatCount\",\"indefinite\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 10,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/search-loader.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isLoading\",[\"loc\",[null,[1,6],[1,15]]]]],[],0,null,[\"loc\",[null,[1,0],[10,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/settings-box', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 6,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/settings-box.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"style\",\"width:50px;height:50px\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"img\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [1, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createAttrMorph(element0, 'class');\n        morphs[1] = dom.createAttrMorph(element1, 'src');\n        morphs[2] = dom.createMorphAt(element0,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"concat\",[\"border bg-white rounded p2 flex flex-center mb3 \",[\"get\",\"testingClass\",[\"loc\",[null,[1,62],[1,74]]]]]]],\n        [\"attribute\",\"src\",[\"get\",\"iconPath\",[\"loc\",[null,[3,15],[3,23]]]]],\n        [\"content\",\"yield\",[\"loc\",[null,[5,2],[5,11]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/sign-out-dropdown', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/sign-out-dropdown.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"dropdown-option\",[],[\"value\",[\"subexpr\",\"unbound\",[[\"get\",\"time\",[\"loc\",[null,[4,37],[4,41]]]]],[],[\"loc\",[null,[4,28],[4,42]]]],\"closestTime\",[\"subexpr\",\"unbound\",[[\"get\",\"closestTime\",[\"loc\",[null,[4,64],[4,75]]]]],[],[\"loc\",[null,[4,55],[4,76]]]]],[\"loc\",[null,[4,4],[4,78]]]]\n        ],\n        locals: [\"time\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 6,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/sign-out-dropdown.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"a\");\n        dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue js-sign-out-button\");\n        var el2 = dom.createTextNode(\"Sign out\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"select\");\n        dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue btn--dropdown js-sign-out-dropdown\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createElementMorph(element0);\n        morphs[1] = dom.createMorphAt(dom.childAt(fragment, [2]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"signOut\"],[],[\"loc\",[null,[1,3],[1,23]]]],\n        [\"block\",\"each\",[[\"get\",\"timesArray\",[\"loc\",[null,[3,10],[3,20]]]]],[],0,null,[\"loc\",[null,[3,2],[5,11]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/stand-description', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/stand-description.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"li\");\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"featureSix\",[\"loc\",[null,[10,10],[10,24]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 13,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/stand-description.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"span\");\n        dom.setAttribute(el1,\"class\",\"lighter\");\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"ul\");\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"li\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"br\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"li\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"li\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"li\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"li\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n \");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [2]);\n        var morphs = new Array(8);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0]),0,0);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n        morphs[2] = dom.createMorphAt(dom.childAt(element0, [5]),0,0);\n        morphs[3] = dom.createMorphAt(dom.childAt(element0, [7]),0,0);\n        morphs[4] = dom.createMorphAt(dom.childAt(element0, [9]),0,0);\n        morphs[5] = dom.createMorphAt(dom.childAt(element0, [11]),0,0);\n        morphs[6] = dom.createMorphAt(element0,13,13);\n        morphs[7] = dom.createMorphAt(element0,15,15);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"maker\",[\"loc\",[null,[1,22],[1,31]]]],\n        [\"content\",\"featureOne\",[\"loc\",[null,[3,8],[3,22]]]],\n        [\"content\",\"featureTwo\",[\"loc\",[null,[5,8],[5,22]]]],\n        [\"content\",\"featureThree\",[\"loc\",[null,[6,8],[6,24]]]],\n        [\"content\",\"featureFour\",[\"loc\",[null,[7,8],[7,23]]]],\n        [\"content\",\"featureFive\",[\"loc\",[null,[8,8],[8,23]]]],\n        [\"block\",\"if\",[[\"get\",\"featureSix\",[\"loc\",[null,[9,10],[9,20]]]]],[],0,null,[\"loc\",[null,[9,4],[11,11]]]],\n        [\"content\",\"yield\",[\"loc\",[null,[12,4],[12,13]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/tokenized-box', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 1,\n            \"column\": 14\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/tokenized-box.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"yield\",[[\"get\",\"this\",[\"loc\",[null,[1,8],[1,12]]]]],[],[\"loc\",[null,[1,0],[1,14]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/components/tokenized-button', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"modifiers\",\n            \"modifiers\": [\n              \"action\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 3,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/tokenized-button.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline btn--cancel\");\n          var el2 = dom.createTextNode(\"×\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element0);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"close\"],[],[\"loc\",[null,[2,5],[2,23]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\",\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 4,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/tokenized-button.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        morphs[1] = dom.createMorphAt(fragment,1,1,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"parent.isOpen\",[\"loc\",[null,[1,6],[1,19]]]]],[],0,null,[\"loc\",[null,[1,0],[3,7]]]],\n        [\"content\",\"yield\",[\"loc\",[null,[4,0],[4,9]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/up-to', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 3,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/up-to.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"yield\",[[\"get\",\"i\",[\"loc\",[null,[2,10],[2,11]]]]],[],[\"loc\",[null,[2,2],[2,13]]]]\n        ],\n        locals: [\"i\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 3,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/up-to.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"items\",[\"loc\",[null,[1,8],[1,13]]]]],[],0,null,[\"loc\",[null,[1,0],[3,9]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/week-row', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 13,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/components/week-row.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"day-cell\",[],[\"date\",[\"subexpr\",\"@mut\",[[\"get\",\"day.date\",[\"loc\",[null,[3,9],[3,17]]]]],[],[]],\"currentMonth\",[\"subexpr\",\"@mut\",[[\"get\",\"currentMonth\",[\"loc\",[null,[4,17],[4,29]]]]],[],[]],\"selectedDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedDate\",[\"loc\",[null,[5,17],[5,29]]]]],[],[]],\"selectedStartDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedStartDate\",[\"loc\",[null,[6,22],[6,39]]]]],[],[]],\"selectedEndDate\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedEndDate\",[\"loc\",[null,[7,20],[7,35]]]]],[],[]],\"hideTrailingDayCells\",[\"subexpr\",\"@mut\",[[\"get\",\"hideTrailingDayCells\",[\"loc\",[null,[8,25],[8,45]]]]],[],[]],\"hideLeadingDayCells\",[\"subexpr\",\"@mut\",[[\"get\",\"hideLeadingDayCells\",[\"loc\",[null,[9,24],[9,43]]]]],[],[]],\"hasEntries\",[\"subexpr\",\"@mut\",[[\"get\",\"day.events\",[\"loc\",[null,[10,15],[10,25]]]]],[],[]],\"hasInvites\",[\"subexpr\",\"@mut\",[[\"get\",\"day.invites\",[\"loc\",[null,[11,15],[11,26]]]]],[],[]],\"action\",\"selectDate\"],[\"loc\",[null,[2,2],[12,25]]]]\n        ],\n        locals: [\"day\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 14,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/week-row.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"each\",[[\"get\",\"daysArray\",[\"loc\",[null,[1,8],[1,17]]]]],[],0,null,[\"loc\",[null,[1,0],[13,9]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/components/x-select', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 2,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/components/x-select.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"yield\",[\"loc\",[null,[1,0],[1,9]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/dashboard/-nav', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 6,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard/-nav.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Pre-Registered\",\"pre-registered\",[\"subexpr\",\"query-params\",[],[\"date\",[\"get\",\"date\",[\"loc\",[null,[5,69],[5,73]]]]],[\"loc\",[null,[5,50],[5,74]]]]],[\"class\",\"mr1 p1 h6 uppercase js-pre-registered-nav\"],[\"loc\",[null,[5,6],[5,126]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 9,\n            \"column\": 9\n          }\n        },\n        \"moduleName\": \"garaje/templates/dashboard/-nav.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"header\");\n        dom.setAttribute(el1,\"class\",\"border-top bg-grayLightest\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"nav\");\n        dom.setAttribute(el2,\"class\",\"flex flex-center p1\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(element0,3,3);\n        morphs[2] = dom.createMorphAt(element0,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"link-to\",[\"Visitors\",\"dashboard\",[\"subexpr\",\"query-params\",[],[\"date\",[\"get\",\"date\",[\"loc\",[null,[3,56],[3,60]]]]],[\"loc\",[null,[3,37],[3,61]]]]],[\"class\",\"mr1 p1 h6 uppercase\"],[\"loc\",[null,[3,4],[3,91]]]],\n        [\"block\",\"if\",[[\"subexpr\",\"and\",[[\"get\",\"subscription.canAccessPreRegistration\",[\"loc\",[null,[4,15],[4,52]]]],[\"get\",\"preRegistrationEnabled\",[\"loc\",[null,[4,53],[4,75]]]]],[],[\"loc\",[null,[4,10],[4,76]]]]],[],0,null,[\"loc\",[null,[4,4],[6,11]]]],\n        [\"inline\",\"link-to\",[\"Analytics\",\"analytics\"],[\"class\",\"mr1 p1 h6 uppercase\"],[\"loc\",[null,[7,4],[7,67]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/dashboard/index', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 5,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 7,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"table-cell border-bottom bg-grayLightest px1 py2\");\n            var el2 = dom.createTextNode(\"Photo\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 9,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 11,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"table-cell border-bottom bg-grayLightest p2 lg-show-table-cell\");\n            var el2 = dom.createTextNode(\"Document\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 18,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 26,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"entry-feed-item\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"entry\",[\"loc\",[null,[20,16],[20,21]]]]],[],[]],\"hasPhoto\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.config.hasPhotoPage\",[\"loc\",[null,[21,17],[21,52]]]]],[],[]],\"action\",\"signOut\",\"fullDate\",[\"subexpr\",\"@mut\",[[\"get\",\"showEntryFullDate\",[\"loc\",[null,[23,17],[23,34]]]]],[],[]],\"ndaEnabled\",[\"subexpr\",\"@mut\",[[\"get\",\"ndaEnabled\",[\"loc\",[null,[24,19],[24,29]]]]],[],[]]],[\"loc\",[null,[19,8],[25,10]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 17,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 27,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"link-to\",[\"entry\",[\"get\",\"entry\",[\"loc\",[null,[18,25],[18,30]]]]],[\"class\",\"no-underline\"],0,null,[\"loc\",[null,[18,6],[26,18]]]]\n          ],\n          locals: [\"entry\"],\n          templates: [child0]\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 33,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 36,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"      \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"src\",\"assets/images/integrations/dashboard-page-integrations.png\");\n            dom.setAttribute(el1,\"width\",\"71\");\n            dom.setAttribute(el1,\"class\",\"mr1 align-middle\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n      Do more with visitor entries in our Integrations Directory\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"multiple-nodes\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 38,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"table h5\");\n          var el2 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"table-row grayDark\");\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"table-cell border-bottom bg-grayLightest p2\");\n          var el4 = dom.createTextNode(\"Visitor information\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"table-cell border-bottom bg-grayLightest p2 lg-show-table-cell\");\n          dom.setAttribute(el3,\"style\",\"min-width:180px\");\n          var el4 = dom.createTextNode(\"Host notification\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"table-cell border-bottom bg-grayLightest p2 right-align\");\n          dom.setAttribute(el3,\"style\",\"min-width:100px\");\n          var el4 = dom.createTextNode(\"Signed in\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"table-cell border-bottom bg-grayLightest p2 center\");\n          dom.setAttribute(el3,\"style\",\"min-width:100px\");\n          var el4 = dom.createTextNode(\"Signed out\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"px1 py2\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"label\");\n          dom.setAttribute(el2,\"class\",\"js-pluralized-visitor-label\");\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\" · \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"a\");\n          dom.setAttribute(el3,\"target\",\"_blank\");\n          dom.setAttribute(el3,\"class\",\"js-export-data\");\n          var el4 = dom.createTextNode(\"Export\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var element3 = dom.childAt(element2, [1]);\n          var element4 = dom.childAt(fragment, [3]);\n          var element5 = dom.childAt(element4, [1]);\n          var element6 = dom.childAt(element5, [2]);\n          var morphs = new Array(6);\n          morphs[0] = dom.createMorphAt(element3,1,1);\n          morphs[1] = dom.createMorphAt(element3,5,5);\n          morphs[2] = dom.createMorphAt(element2,3,3);\n          morphs[3] = dom.createMorphAt(element5,0,0);\n          morphs[4] = dom.createAttrMorph(element6, 'href');\n          morphs[5] = dom.createMorphAt(element4,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"currentLocation.config.hasPhotoPage\",[\"loc\",[null,[5,12],[5,47]]]]],[],0,null,[\"loc\",[null,[5,6],[7,13]]]],\n          [\"block\",\"if\",[[\"get\",\"ndaEnabled\",[\"loc\",[null,[9,12],[9,22]]]]],[],1,null,[\"loc\",[null,[9,6],[11,13]]]],\n          [\"block\",\"each\",[[\"get\",\"model.entries\",[\"loc\",[null,[17,12],[17,25]]]]],[\"key\",\"@index\"],2,null,[\"loc\",[null,[17,4],[27,13]]]],\n          [\"inline\",\"pluralized-word\",[[\"get\",\"model.entries.length\",[\"loc\",[null,[31,65],[31,85]]]],\"Visitor\"],[],[\"loc\",[null,[31,47],[31,97]]]],\n          [\"attribute\",\"href\",[\"get\",\"exportUrl\",[\"loc\",[null,[31,117],[31,126]]]]],\n          [\"block\",\"link-to\",[\"settings.integrations\"],[\"class\",\"h5 right\"],3,null,[\"loc\",[null,[33,4],[36,16]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 38,\n                \"column\": 0\n              },\n              \"end\": {\n                \"line\": 44,\n                \"column\": 0\n              }\n            },\n            \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"mx-auto center mt4 js-emptyState\");\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"emptyImage empty-sun\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h2\");\n            dom.setAttribute(el2,\"class\",\"mt3 mb2 fw-200 grayDark\");\n            var el3 = dom.createTextNode(\"Welcome aboard! Let's greet your first visitor.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"a\");\n            dom.setAttribute(el2,\"href\",\"https://itunes.apple.com/us/app/envoy-visitor-registration/id638367498?mt=8\");\n            dom.setAttribute(el2,\"class\",\"btn btn--small btn--blue\");\n            var el3 = dom.createTextNode(\"Download the iPad App\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n  \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 48,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 50,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        matching query.\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 51,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 53,\n                    \"column\": 8\n                  }\n                },\n                \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"          yet today.\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 53,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 55,\n                    \"column\": 8\n                  }\n                },\n                \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"          on this day.\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 50,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 56,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"isToday\",[\"loc\",[null,[51,14],[51,21]]]]],[],0,1,[\"loc\",[null,[51,8],[55,15]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 44,\n                \"column\": 0\n              },\n              \"end\": {\n                \"line\": 59,\n                \"column\": 0\n              }\n            },\n            \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"mx-auto center mt4 js-emptyState\");\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h2\");\n            dom.setAttribute(el2,\"class\",\"mt3 fw-200 grayDark\");\n            var el3 = dom.createTextNode(\"No visitors\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"    \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n  \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var element1 = dom.childAt(element0, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createAttrMorph(element1, 'class');\n            morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"class\",[\"concat\",[\"emptyImage \",[\"subexpr\",\"if\",[[\"get\",\"isToday\",[\"loc\",[null,[46,32],[46,39]]]],\"empty-sun\",\"empty-ghost\"],[],[\"loc\",[null,[46,27],[46,67]]]]]]],\n            [\"block\",\"if\",[[\"get\",\"query\",[\"loc\",[null,[48,12],[48,17]]]]],[],0,1,[\"loc\",[null,[48,6],[56,13]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 38,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 59,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"noHistoricVisitors\",[\"loc\",[null,[38,10],[38,28]]]]],[],0,1,[\"loc\",[null,[38,0],[59,0]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 60,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/dashboard/index.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"model.entries\",[\"loc\",[null,[1,6],[1,19]]]]],[],0,1,[\"loc\",[null,[1,0],[59,7]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/dashboard/loading', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 5,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/dashboard/loading.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"medium-9 columns dashboardLoader\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"loader\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        dom.setNamespace(\"http://www.w3.org/2000/svg\");\n        var el3 = dom.createElement(\"svg\");\n        dom.setAttribute(el3,\"width\",\"80\");\n        dom.setAttribute(el3,\"height\",\"80\");\n        dom.setAttribute(el3,\"viewBox\",\"0 0 44 44\");\n        dom.setAttribute(el3,\"xmlns\",\"http://www.w3.org/2000/svg\");\n        dom.setAttribute(el3,\"stroke\",\"#4E92DF\");\n        var el4 = dom.createElement(\"g\");\n        dom.setAttribute(el4,\"fill\",\"none\");\n        var el5 = dom.createElement(\"circle\");\n        dom.setAttribute(el5,\"cx\",\"22\");\n        dom.setAttribute(el5,\"cy\",\"22\");\n        dom.setAttribute(el5,\"r\",\"1\");\n        var el6 = dom.createElement(\"animate\");\n        dom.setAttribute(el6,\"attributeName\",\"r\");\n        dom.setAttribute(el6,\"begin\",\"0s\");\n        dom.setAttribute(el6,\"dur\",\"1.8s\");\n        dom.setAttribute(el6,\"values\",\"1; 20\");\n        dom.setAttribute(el6,\"calcMode\",\"spline\");\n        dom.setAttribute(el6,\"keyTimes\",\"0; 1\");\n        dom.setAttribute(el6,\"keySplines\",\"0.165, 0.84, 0.44, 1\");\n        dom.setAttribute(el6,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"animate\");\n        dom.setAttribute(el6,\"attributeName\",\"stroke-opacity\");\n        dom.setAttribute(el6,\"begin\",\"0s\");\n        dom.setAttribute(el6,\"dur\",\"1.8s\");\n        dom.setAttribute(el6,\"values\",\"1; 0\");\n        dom.setAttribute(el6,\"calcMode\",\"spline\");\n        dom.setAttribute(el6,\"keyTimes\",\"0; 1\");\n        dom.setAttribute(el6,\"keySplines\",\"0.3, 0.61, 0.355, 1\");\n        dom.setAttribute(el6,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"circle\");\n        dom.setAttribute(el5,\"cx\",\"22\");\n        dom.setAttribute(el5,\"cy\",\"22\");\n        dom.setAttribute(el5,\"r\",\"1\");\n        var el6 = dom.createElement(\"animate\");\n        dom.setAttribute(el6,\"attributeName\",\"r\");\n        dom.setAttribute(el6,\"begin\",\"-0.9s\");\n        dom.setAttribute(el6,\"dur\",\"1.8s\");\n        dom.setAttribute(el6,\"values\",\"1; 20\");\n        dom.setAttribute(el6,\"calcMode\",\"spline\");\n        dom.setAttribute(el6,\"keyTimes\",\"0; 1\");\n        dom.setAttribute(el6,\"keySplines\",\"0.165, 0.84, 0.44, 1\");\n        dom.setAttribute(el6,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"animate\");\n        dom.setAttribute(el6,\"attributeName\",\"stroke-opacity\");\n        dom.setAttribute(el6,\"begin\",\"-0.9s\");\n        dom.setAttribute(el6,\"dur\",\"1.8s\");\n        dom.setAttribute(el6,\"values\",\"1; 0\");\n        dom.setAttribute(el6,\"calcMode\",\"spline\");\n        dom.setAttribute(el6,\"keyTimes\",\"0; 1\");\n        dom.setAttribute(el6,\"keySplines\",\"0.3, 0.61, 0.355, 1\");\n        dom.setAttribute(el6,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/dashboard', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 45\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 87\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"Hide Calendar\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 87\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 108\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"Show Calendar\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 17,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 19,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            Visitors matching \\\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"query\",[\"loc\",[null,[18,31],[18,40]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 19,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 21,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            Visitors\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 30,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 41,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"py2 px1 border-bottom flex flex-center js-day-bar\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"js-formatted-chosen-date h5 flex-auto\");\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"strong\");\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\" \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\" \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex-none right-align\");\n          var el3 = dom.createElement(\"strong\");\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"class\",\"btn btn--squareAdd js-dashboard-go-back-a-day\");\n          var el5 = dom.createTextNode(\"‹\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"class\",\"btn btn--squareAdd js-dashboard-today\");\n          var el5 = dom.createTextNode(\"Today\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"class\",\"btn btn--squareAdd js-dashboard-go-forward-a-day\");\n          var el5 = dom.createTextNode(\"›\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var element1 = dom.childAt(element0, [1]);\n          var element2 = dom.childAt(element0, [3, 0]);\n          var element3 = dom.childAt(element2, [1]);\n          var element4 = dom.childAt(element2, [3]);\n          var element5 = dom.childAt(element2, [5]);\n          var morphs = new Array(5);\n          morphs[0] = dom.createMorphAt(dom.childAt(element1, [1]),0,0);\n          morphs[1] = dom.createMorphAt(element1,3,3);\n          morphs[2] = dom.createElementMorph(element3);\n          morphs[3] = dom.createElementMorph(element4);\n          morphs[4] = dom.createElementMorph(element5);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"moment-format\",[[\"get\",\"date\",[\"loc\",[null,[33,34],[33,38]]]],\"dddd\"],[],[\"loc\",[null,[33,18],[33,47]]]],\n          [\"inline\",\"moment-format\",[[\"get\",\"date\",[\"loc\",[null,[33,74],[33,78]]]],\"MMMM Do, YYYY\"],[],[\"loc\",[null,[33,58],[33,96]]]],\n          [\"element\",\"action\",[\"goBack\"],[],[\"loc\",[null,[36,13],[36,32]]]],\n          [\"element\",\"action\",[\"chooseToday\"],[],[\"loc\",[null,[37,13],[37,37]]]],\n          [\"element\",\"action\",[\"goForward\"],[],[\"loc\",[null,[38,13],[38,35]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 43,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 45,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"dashboard/index\"],[],[\"loc\",[null,[44,6],[44,35]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child6 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 45,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 47,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/dashboard.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"dashboard/loading\"],[],[\"loc\",[null,[46,6],[46,37]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 52,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/dashboard.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"md-flex\");\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"md-hide py2 mbn3 border-bottom bg-white center\");\n        dom.setAttribute(el2,\"style\",\"cursor:pointer;\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"icon icon-calendar\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\" \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"mt3 px2 flex-none\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex-auto\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"py3 px1 border-bottom clearfix flex flex-center\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"flex-auto\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        dom.setAttribute(el5,\"class\",\"js-dashboard-header-title\");\n        var el6 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"flex-auto right-align ml2\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element6 = dom.childAt(fragment, [0]);\n        var element7 = dom.childAt(element6, [1]);\n        var element8 = dom.childAt(element6, [3, 1]);\n        var element9 = dom.childAt(element6, [5]);\n        var element10 = dom.childAt(element9, [1]);\n        var morphs = new Array(8);\n        morphs[0] = dom.createElementMorph(element7);\n        morphs[1] = dom.createMorphAt(element7,3,3);\n        morphs[2] = dom.createAttrMorph(element8, 'class');\n        morphs[3] = dom.createMorphAt(element8,1,1);\n        morphs[4] = dom.createMorphAt(dom.childAt(element10, [1, 1]),1,1);\n        morphs[5] = dom.createMorphAt(dom.childAt(element10, [3]),1,1);\n        morphs[6] = dom.createMorphAt(element9,3,3);\n        morphs[7] = dom.createMorphAt(element9,5,5);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"toggleCalendarVisible\"],[],[\"loc\",[null,[3,7],[3,41]]]],\n        [\"block\",\"if\",[[\"get\",\"mobileCalendarVisible\",[\"loc\",[null,[4,51],[4,72]]]]],[],0,1,[\"loc\",[null,[4,45],[4,115]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"js-calendar-container \",[\"subexpr\",\"if\",[[\"get\",\"mobileCalendarVisible\",[\"loc\",[null,[8,43],[8,64]]]],\"calendar-visible\"],[],[\"loc\",[null,[8,38],[8,85]]]]]]],\n        [\"inline\",\"envoy-calendar\",[],[\"date\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedDate\",[\"loc\",[null,[9,28],[9,40]]]]],[],[]],\"events\",[\"subexpr\",\"@mut\",[[\"get\",\"datesWithEntries\",[\"loc\",[null,[9,48],[9,64]]]]],[],[]],\"query\",[\"subexpr\",\"@mut\",[[\"get\",\"query\",[\"loc\",[null,[9,71],[9,76]]]]],[],[]]],[\"loc\",[null,[9,6],[9,78]]]],\n        [\"block\",\"if\",[[\"get\",\"query\",[\"loc\",[null,[17,16],[17,21]]]]],[],2,3,[\"loc\",[null,[17,10],[21,17]]]],\n        [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"query\",[\"loc\",[null,[26,22],[26,27]]]]],[],[]],\"class\",\"pageSearch rounded border p1 icon-search\",\"placeholder\",\"Search visitors\",\"type\",\"search\"],[\"loc\",[null,[26,8],[26,122]]]],\n        [\"block\",\"unless\",[[\"get\",\"query\",[\"loc\",[null,[30,14],[30,19]]]]],[],4,null,[\"loc\",[null,[30,4],[41,15]]]],\n        [\"block\",\"if\",[[\"get\",\"entriesSettled\",[\"loc\",[null,[43,10],[43,24]]]]],[],5,6,[\"loc\",[null,[43,4],[47,11]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5, child6]\n    };\n  }()));\n\n});","define('garaje/templates/devices/-nav', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 11,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/devices/-nav.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"header\");\n        dom.setAttribute(el1,\"class\",\"subHeader\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"row\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"nav\");\n        dom.setAttribute(el4,\"class\",\"subHeader-nav pushed\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1, 1, 1]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(element0,3,3);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"link-to\",[\"iPads\",\"ipads\"],[],[\"loc\",[null,[5,8],[5,35]]]],\n        [\"inline\",\"link-to\",[\"Printers\",\"printers\"],[],[\"loc\",[null,[6,8],[6,41]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/devices', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 6,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/devices.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"row\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"large-9 columns small-centered\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0, 1]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"outlet\",[\"loc\",[null,[3,4],[3,14]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/entry/-nav', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 3,\n              \"column\": 194\n            }\n          },\n          \"moduleName\": \"garaje/templates/entry/-nav.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\" \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"moment-format\",[[\"get\",\"signInTime\",[\"loc\",[null,[3,130],[3,140]]]],\"dddd\"],[],[\"loc\",[null,[3,114],[3,149]]]],\n          [\"inline\",\"moment-format\",[[\"get\",\"signInTime\",[\"loc\",[null,[3,166],[3,176]]]],\"MMMM Do, YYYY\"],[],[\"loc\",[null,[3,150],[3,194]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 6,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/entry/-nav.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"header\");\n        dom.setAttribute(el1,\"class\",\"border-top bg-grayLightest\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"nav\");\n        dom.setAttribute(el2,\"class\",\"flex flex-center p1\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\" \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"h6 uppercase grayDark\");\n        var el4 = dom.createTextNode(\"  –  \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"span\");\n        dom.setAttribute(el4,\"class\",\"white\");\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3, 1]),0,0);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"link-to\",[\"dashboard\",[\"subexpr\",\"query-params\",[],[\"date\",[\"subexpr\",\"moment-format\",[[\"get\",\"signInTime\",[\"loc\",[null,[3,61],[3,71]]]],\"YYYY-MM-DD\"],[],[\"loc\",[null,[3,46],[3,85]]]]],[\"loc\",[null,[3,27],[3,86]]]]],[\"class\",\"pl1 h6 uppercase\"],0,null,[\"loc\",[null,[3,4],[3,206]]]],\n        [\"content\",\"fullName\",[\"loc\",[null,[3,294],[3,306]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/entry', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 3,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/entry.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"img\");\n          dom.setAttribute(el1,\"class\",\"rounded\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createAttrMorph(element1, 'src');\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"src\",[\"get\",\"thumbnailPath\",[\"loc\",[null,[4,19],[4,32]]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 14,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 16,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/entry.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"moment-format\",[[\"get\",\"model.signOutTime\",[\"loc\",[null,[15,24],[15,41]]]],\"llll\"],[],[\"loc\",[null,[15,8],[15,50]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 16,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 18,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/entry.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        Not yet signed out\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 22,\n                \"column\": 6\n              },\n              \"end\": {\n                \"line\": 29,\n                \"column\": 6\n              }\n            },\n            \"moduleName\": \"garaje/templates/entry.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"        \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"async-button\",[],[\"action\",\"reprintBadge\",\"classNames\",\"btn btn--small btn--blue js-reprint-badge-button\",\"default\",\"Reprint Badge\",\"pending\",\"Reprinting...\"],[\"loc\",[null,[23,8],[28,10]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 21,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 35,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/entry.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"canPrintBadges\",[\"loc\",[null,[22,12],[22,26]]]]],[],0,null,[\"loc\",[null,[22,6],[29,13]]]],\n          [\"inline\",\"sign-out-dropdown\",[],[\"class\",\"dropdownButton\",\"signInTime\",[\"subexpr\",\"@mut\",[[\"get\",\"model.signInTime\",[\"loc\",[null,[32,17],[32,33]]]]],[],[]],\"action\",\"signOut\"],[\"loc\",[null,[30,6],[34,8]]]]\n        ],\n        locals: [],\n        templates: [child0]\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 44,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 46,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/entry.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"mapped-field\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"mappedField\",[\"loc\",[null,[45,35],[45,46]]]]],[],[]],\"action\",\"searchEmployees\"],[\"loc\",[null,[45,12],[45,73]]]]\n        ],\n        locals: [\"mappedField\"],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 51,\n                \"column\": 14\n              },\n              \"end\": {\n                \"line\": 53,\n                \"column\": 14\n              }\n            },\n            \"moduleName\": \"garaje/templates/entry.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"moment-format\",[[\"get\",\"model.originalNdaSignDate\",[\"loc\",[null,[52,32],[52,57]]]],\"MMM D YYYY\"],[],[\"loc\",[null,[52,16],[52,72]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 53,\n                \"column\": 14\n              },\n              \"end\": {\n                \"line\": 55,\n                \"column\": 14\n              }\n            },\n            \"moduleName\": \"garaje/templates/entry.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"moment-format\",[[\"get\",\"model.signInTime\",[\"loc\",[null,[54,32],[54,48]]]],\"MMM D YYYY\"],[],[\"loc\",[null,[54,16],[54,63]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 48,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 57,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/entry.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"for\",\"\");\n          var el2 = dom.createTextNode(\"Agreement\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"a\");\n          dom.setAttribute(el1,\"class\",\"input ok js-agreement-link\");\n          var el2 = dom.createTextNode(\"Signed \\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" (Download PDF)\\n            \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [3]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createAttrMorph(element0, 'href');\n          morphs[1] = dom.createMorphAt(element0,1,1);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"href\",[\"get\",\"model.agreementLink\",[\"loc\",[null,[50,22],[50,41]]]]],\n          [\"block\",\"if\",[[\"get\",\"model.originalNdaSignDate\",[\"loc\",[null,[51,20],[51,45]]]]],[],0,1,[\"loc\",[null,[51,14],[55,21]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child6 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 59,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 62,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/entry.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"for\",\"\");\n          var el2 = dom.createTextNode(\"Agreement\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"input bad js-agreement-refused\");\n          var el2 = dom.createTextNode(\"Not signed\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 83,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/entry.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2 mxn2 pt4\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col sm-col-4 lg-col-3 px2\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"mt3 mb0 h5 border-bottom py1\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"span\");\n        dom.setAttribute(el4,\"class\",\"bold block\");\n        var el5 = dom.createTextNode(\"Signed in:\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"mb3 h5 py1\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"span\");\n        dom.setAttribute(el4,\"class\",\"bold block\");\n        var el5 = dom.createTextNode(\"Signed out:\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col sm-col-8 lg-col-9 px2\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"md-col-10 lg-col-8 mx-auto\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"form\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"fieldset\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h1\");\n        dom.setAttribute(el6,\"class\",\"mb3 js-entry-show-name-h1\");\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"clearfix mt3\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"col col-6\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"col col-6 right-align\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"a\");\n        dom.setAttribute(el8,\"class\",\"btn btn--small btn--redHoverFill js-entry-delete u-right\");\n        var el9 = dom.createTextNode(\"Delete\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element2 = dom.childAt(fragment, [0]);\n        var element3 = dom.childAt(element2, [1]);\n        var element4 = dom.childAt(element2, [3, 1, 1, 1]);\n        var element5 = dom.childAt(element4, [9]);\n        var element6 = dom.childAt(element5, [3, 1]);\n        var morphs = new Array(10);\n        morphs[0] = dom.createMorphAt(element3,1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element3, [3]),3,3);\n        morphs[2] = dom.createMorphAt(dom.childAt(element3, [5]),3,3);\n        morphs[3] = dom.createMorphAt(element3,7,7);\n        morphs[4] = dom.createMorphAt(dom.childAt(element4, [1]),0,0);\n        morphs[5] = dom.createMorphAt(element4,3,3);\n        morphs[6] = dom.createMorphAt(element4,5,5);\n        morphs[7] = dom.createMorphAt(element4,7,7);\n        morphs[8] = dom.createMorphAt(dom.childAt(element5, [1]),1,1);\n        morphs[9] = dom.createElementMorph(element6);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"currentLocation.config.hasPhotoPage\",[\"loc\",[null,[3,10],[3,45]]]]],[],0,null,[\"loc\",[null,[3,4],[5,11]]]],\n        [\"inline\",\"moment-format\",[[\"get\",\"model.signInTime\",[\"loc\",[null,[9,22],[9,38]]]],\"llll\"],[],[\"loc\",[null,[9,6],[9,47]]]],\n        [\"block\",\"if\",[[\"get\",\"model.signOutTime\",[\"loc\",[null,[14,12],[14,29]]]]],[],1,2,[\"loc\",[null,[14,6],[18,13]]]],\n        [\"block\",\"unless\",[[\"get\",\"model.signOutTime\",[\"loc\",[null,[21,14],[21,31]]]]],[],3,null,[\"loc\",[null,[21,4],[35,15]]]],\n        [\"content\",\"model.fullName\",[\"loc\",[null,[42,48],[42,66]]]],\n        [\"block\",\"each\",[[\"get\",\"mappedFields\",[\"loc\",[null,[44,18],[44,30]]]]],[],4,null,[\"loc\",[null,[44,10],[46,19]]]],\n        [\"block\",\"if\",[[\"get\",\"model.agreementLink\",[\"loc\",[null,[48,16],[48,35]]]]],[],5,null,[\"loc\",[null,[48,10],[57,17]]]],\n        [\"block\",\"if\",[[\"get\",\"model.agreementRefused\",[\"loc\",[null,[59,16],[59,38]]]]],[],6,null,[\"loc\",[null,[59,10],[62,17]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green js-entry-save\",\"default\",\"Save\",\"pending\",\"Saving...\",\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"hasEmptyRequiredFields\",[\"loc\",[null,[71,23],[71,45]]]]],[],[]]],[\"loc\",[null,[66,14],[72,16]]]],\n        [\"element\",\"action\",[\"delete\"],[],[\"loc\",[null,[75,17],[75,36]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5, child6]\n    };\n  }()));\n\n});","define('garaje/templates/error', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 9,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/error.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"errorPage\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"content\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"emptyImage empty-error\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        var el4 = dom.createTextNode(\"Envoy is having trouble connecting.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        var el4 = dom.createTextNode(\"There might be a problem with our servers or your internet connection. Check our \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"href\",\"https://status.envoy.co\");\n        dom.setAttribute(el4,\"target\",\"_blank\");\n        var el5 = dom.createTextNode(\"Status Page\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" and please \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/contact\");\n        var el5 = dom.createTextNode(\"submit a support ticket\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" if you need help.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        dom.setAttribute(el3,\"href\",\"javascript:location.reload()\");\n        dom.setAttribute(el3,\"class\",\"btn btn--small btn--white\");\n        var el4 = dom.createTextNode(\"Try again\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/invite', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 71,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/invite.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"row\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"large-9 columns small-centered\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"form\");\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el4,\"class\",\"row\");\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"columns\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h2\");\n        var el7 = dom.createTextNode(\"You\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-6 columns end\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"select\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"option\");\n        dom.setAttribute(el7,\"disabled\",\"\");\n        dom.setAttribute(el7,\"selected\",\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"option\");\n        var el8 = dom.createTextNode(\"Wells Riley\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"option\");\n        var el8 = dom.createTextNode(\"Larry Gadea\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"label\");\n        dom.setAttribute(el6,\"for\",\"\");\n        var el7 = dom.createTextNode(\"Your Full Name\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el4,\"class\",\"row\");\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"columns\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h2\");\n        var el7 = dom.createTextNode(\"Your Guest\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-6 columns\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"input\");\n        dom.setAttribute(el6,\"type\",\"text\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"label\");\n        dom.setAttribute(el6,\"for\",\"\");\n        var el7 = dom.createTextNode(\"Visitor's full name\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-6 columns\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"input\");\n        dom.setAttribute(el6,\"type\",\"text\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"label\");\n        dom.setAttribute(el6,\"for\",\"\");\n        var el7 = dom.createTextNode(\"Visitor's email address\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-3 columns\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"select\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"label\");\n        dom.setAttribute(el6,\"for\",\"\");\n        var el7 = dom.createTextNode(\"Date\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-3 columns\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"select\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"label\");\n        dom.setAttribute(el6,\"for\",\"\");\n        var el7 = dom.createTextNode(\"Time\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-6 columns\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"input\");\n        dom.setAttribute(el6,\"type\",\"text\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"label\");\n        dom.setAttribute(el6,\"for\",\"\");\n        var el7 = dom.createTextNode(\"Note to the Receptionist\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"medium-6 columns end\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"label\");\n        dom.setAttribute(el6,\"class\",\"checkbox\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"label\");\n        dom.setAttribute(el7,\"class\",\"toggle toggle--tiny\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            Send invitation email to visitor\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"columns button\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"#\");\n        dom.setAttribute(el6,\"class\",\"btn btn--small btn--green\");\n        var el7 = dom.createTextNode(\"Send Invitation\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0, 1, 1, 3, 13, 1, 1]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",\"checked\"],[\"loc\",[null,[56,14],[56,57]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/ipad/-deliveries', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"select-2\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.deliveryPerson\",[\"loc\",[null,[6,12],[6,32]]]]],[],[]],\"optionLabelPath\",\"name\",\"id\",\"deliveryPersonSelect\",\"allowClear\",true,\"placeholder\",\"Please fix issues below to enable :)\"],[\"loc\",[null,[5,6],[10,58]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 11,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 19,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"select-2\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.deliveryPerson\",[\"loc\",[null,[13,12],[13,32]]]]],[],[]],\"optionLabelPath\",\"name\",\"id\",\"deliveryPersonSelect\",\"allowClear\",true,\"placeholder\",\"Choose a delivery contact\",\"query\",\"searchEmployees\"],[\"loc\",[null,[12,6],[18,31]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 27,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 27,\n                    \"column\": 58\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"Employee Directory\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 26,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 28,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            and \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"link-to\",[\"employees\"],[],0,null,[\"loc\",[null,[27,16],[27,70]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 24,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 29,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"link-to\",[\"Host Notification\",\"notifications\"],[\"tabindex\",\"-1\"],[\"loc\",[null,[25,10],[25,71]]]],\n            [\"block\",\"if\",[[\"get\",\"doesNotHaveEmployees\",[\"loc\",[null,[26,16],[26,36]]]]],[],0,null,[\"loc\",[null,[26,10],[28,17]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 30,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 30,\n                  \"column\": 52\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"Employee Directory\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 29,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 31,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"link-to\",[\"employees\"],[],0,null,[\"loc\",[null,[30,10],[30,64]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 21,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 34,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"js-precondition\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"icon-notice\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"strong\");\n          var el3 = dom.createTextNode(\"You must enable\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"        to use Delivery Notifications.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"doesNotHaveNotification\",[\"loc\",[null,[24,14],[24,37]]]]],[],0,1,[\"loc\",[null,[24,8],[31,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 41,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/ipad/-deliveries.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-6\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"label\");\n        dom.setAttribute(el3,\"for\",\"deliveryPersonSelect\");\n        var el4 = dom.createTextNode(\"Delivery Contact\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        var el4 = dom.createTextNode(\"Choose one employee to receive notifications when deliveries arrive.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(element0,3,3);\n        morphs[1] = dom.createMorphAt(element0,5,5);\n        morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"hasUnmetPreconditions\",[\"loc\",[null,[4,10],[4,31]]]]],[],0,1,[\"loc\",[null,[4,4],[19,11]]]],\n        [\"block\",\"if\",[[\"get\",\"hasUnmetPreconditions\",[\"loc\",[null,[21,10],[21,31]]]]],[],2,null,[\"loc\",[null,[21,4],[34,11]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"disableDeliveries\",\"class\",\"btn btn--small btn--outline right m1\",\"default\",\"Disable\",\"pending\",\"Disabling...\",\"tabindex\",\"-1\"],[\"loc\",[null,[40,0],[40,143]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/ipad/-nda-bcc', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\",\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 16,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/ipad/-nda-bcc.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-6\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        var el4 = dom.createTextNode(\"Choose one email address to receive a PDF of each signed agreement. \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"href\",\"https://help.envoy.co/signed-agreements/how-do-i-retrieve-previously-signed-agreements/\");\n        dom.setAttribute(el4,\"target\",\"_blank\");\n        dom.setAttribute(el4,\"class\",\"help\");\n        dom.setAttribute(el4,\"tabindex\",\"-1\");\n        var el5 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(dom.childAt(fragment, [0, 1]),1,1);\n        morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"email-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.ndaBccEmail\",[\"loc\",[null,[3,24],[3,41]]]]],[],[]],\"autofocus\",\"true\",\"placeholder\",\"legal@secondstreetlabs.com\",\"label\",\"Email address\"],[\"loc\",[null,[3,4],[3,123]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"disableNdaBcc\",\"class\",\"btn btn--small btn--outline right m1\",\"default\",\"Disable\",\"pending\",\"Disabling...\",\"tabindex\",\"-1\"],[\"loc\",[null,[9,0],[15,2]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/ipad', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"h5 grayDark\");\n          var el2 = dom.createTextNode(\"Customize the features that appear on your iPad’s welcome screen.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 9,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"h5 grayDark\");\n          var el2 = dom.createTextNode(\"Customize the design and features that appear on your iPad’s welcome screen. \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          dom.setAttribute(el2,\"href\",\"https://help.envoy.co/your-ipad-and-envoy-app/how-do-i-change-my-welcome-screen/#upload-a-welcome-screen-image\");\n          dom.setAttribute(el2,\"target\",\"_blank\");\n          dom.setAttribute(el2,\"class\",\"help\");\n          dom.setAttribute(el2,\"tabindex\",\"-1\");\n          var el3 = dom.createTextNode(\"Learn more\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 11,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 30,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"customize/welcome-image\",[],[\"config\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[13,15],[13,20]]]]],[],[]],\"setWelcomeImage\",[\"subexpr\",\"action\",[\"setWelcomeImage\"],[],[\"loc\",[null,[14,24],[14,50]]]],\"deleteWelcomeImage\",[\"subexpr\",\"action\",[\"deleteWelcomeImage\"],[],[\"loc\",[null,[15,27],[15,56]]]],\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[16,15],[16,19]]]]],[],[]]],[\"loc\",[null,[12,8],[17,10]]]],\n          [\"inline\",\"customize/slideshow-images\",[],[\"welcomeImage\",[\"subexpr\",\"@mut\",[[\"get\",\"model.welcomeImage\",[\"loc\",[null,[20,21],[20,39]]]]],[],[]],\"slideshows\",[\"subexpr\",\"@mut\",[[\"get\",\"model.slideshows\",[\"loc\",[null,[21,19],[21,35]]]]],[],[]],\"onlyShowSlideshow\",[\"subexpr\",\"@mut\",[[\"get\",\"model.onlyShowSlideshow\",[\"loc\",[null,[22,26],[22,49]]]]],[],[]],\"addSlideshow\",[\"subexpr\",\"action\",[\"addSlideshow\"],[],[\"loc\",[null,[23,21],[23,44]]]],\"removeSlideshow\",[\"subexpr\",\"action\",[\"removeSlideshow\"],[],[\"loc\",[null,[24,24],[24,50]]]],\"finalizeSlideshow\",[\"subexpr\",\"action\",[\"finalizeSlideshow\"],[],[\"loc\",[null,[25,26],[25,54]]]],\"refreshConfig\",[\"subexpr\",\"action\",[\"refreshConfig\"],[],[\"loc\",[null,[26,22],[26,46]]]],\"setOnlyShowSlideshow\",[\"subexpr\",\"action\",[\"setOnlyShowSlideshow\"],[],[\"loc\",[null,[27,29],[27,60]]]],\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[28,15],[28,19]]]]],[],[]]],[\"loc\",[null,[19,8],[29,10]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 39,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 41,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"bg-yellow-10 js-bhb\");\n          var el2 = dom.createTextNode(\"You must enable \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"strong\");\n          var el3 = dom.createTextNode(\"Email Address\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" or \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"strong\");\n          var el3 = dom.createTextNode(\"Phone Number\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" in \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          var el3 = dom.createTextNode(\"Visitor Information\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\" to enable this feature.\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element31 = dom.childAt(fragment, [1, 5]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element31);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"goToAnchor\",\"ipad\",\"#visitor-information\"],[],[\"loc\",[null,[40,129],[40,182]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 85,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 92,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green js-save-deliveries-button\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[86,18],[91,20]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 84,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 93,\n                  \"column\": 16\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"unless\",[[\"get\",\"hasUnmetPreconditions\",[\"loc\",[null,[85,26],[85,47]]]]],[],0,null,[\"loc\",[null,[85,16],[92,27]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 93,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 95,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"a\");\n                dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue js-edit-deliveries-button\");\n                var el2 = dom.createTextNode(\"Edit\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element28 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element28);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"editDeliveries\"],[],[\"loc\",[null,[94,19],[94,46]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 95,\n                      \"column\": 16\n                    },\n                    \"end\": {\n                      \"line\": 97,\n                      \"column\": 16\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/ipad.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createComment(\"\");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                  return morphs;\n                },\n                statements: [\n                  [\"inline\",\"async-button\",[],[\"action\",\"enableDeliveries\",\"class\",\"btn btn--small btn--blue js-enable-deliveries-button\",\"default\",\"Enable\",\"pending\",\"Enabling...\"],[\"loc\",[null,[96,16],[96,158]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 97,\n                      \"column\": 16\n                    },\n                    \"end\": {\n                      \"line\": 99,\n                      \"column\": 14\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/ipad.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"a\");\n                  dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue js-enable-deliveries-button\");\n                  var el2 = dom.createTextNode(\"Enable\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n              \");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element27 = dom.childAt(fragment, [1]);\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createElementMorph(element27);\n                  return morphs;\n                },\n                statements: [\n                  [\"element\",\"action\",[\"editDeliveries\"],[],[\"loc\",[null,[98,19],[98,46]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 95,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 99,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"if\",[[\"get\",\"model.deliveryPerson\",[\"loc\",[null,[95,26],[95,46]]]]],[],0,1,[\"loc\",[null,[95,16],[99,14]]]]\n              ],\n              locals: [],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 93,\n                  \"column\": 16\n                },\n                \"end\": {\n                  \"line\": 99,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"model.acceptDeliveries\",[\"loc\",[null,[93,26],[93,48]]]]],[],0,1,[\"loc\",[null,[93,16],[99,14]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 83,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 100,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[84,20],[84,30]]]]],[],0,1,[\"loc\",[null,[84,14],[99,21]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 103,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 105,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"partial\",[\"ipad/deliveries\"],[],[\"loc\",[null,[104,12],[104,41]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 72,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 107,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-accept-deliveries\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/features/delivery.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Accept deliveries\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Notify \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"b\");\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\" when packages arrive.\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element29 = dom.childAt(fragment, [1]);\n          var element30 = dom.childAt(element29, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(dom.childAt(element30, [3, 3, 1]),0,0);\n          morphs[1] = dom.createMorphAt(element30,5,5);\n          morphs[2] = dom.createMorphAt(element29,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"with-fallback\",[[\"get\",\"model.deliveryPerson.name\",[\"loc\",[null,[80,54],[80,79]]]],\"your delivery contact\"],[],[\"loc\",[null,[80,38],[80,105]]]],\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[83,39],[83,42]]]]],[],[]]],0,null,[\"loc\",[null,[83,12],[100,33]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[103,23],[103,33]]]]],[\"class\",\"js-tokenized\"],1,null,[\"loc\",[null,[103,10],[105,24]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1]\n      };\n    }());\n    var child5 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 155,\n                  \"column\": 18\n                },\n                \"end\": {\n                  \"line\": 157,\n                  \"column\": 20\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                    \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"model.ndaBccEmail\",[\"loc\",[null,[156,20],[156,41]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 157,\n                  \"column\": 20\n                },\n                \"end\": {\n                  \"line\": 159,\n                  \"column\": 18\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                    Automatically send signed documents to a specified email address.\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child2 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 163,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 170,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[164,18],[169,20]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 170,\n                      \"column\": 18\n                    },\n                    \"end\": {\n                      \"line\": 172,\n                      \"column\": 18\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/ipad.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                  \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"a\");\n                  dom.setAttribute(el1,\"href\",\"#\");\n                  dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n                  var el2 = dom.createTextNode(\"Edit\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element24 = dom.childAt(fragment, [1]);\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createElementMorph(element24);\n                  return morphs;\n                },\n                statements: [\n                  [\"element\",\"action\",[\"editEmail\"],[],[\"loc\",[null,[171,30],[171,52]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              var child0 = (function() {\n                return {\n                  meta: {\n                    \"fragmentReason\": false,\n                    \"revision\": \"Ember@2.2.0-beta.1\",\n                    \"loc\": {\n                      \"source\": null,\n                      \"start\": {\n                        \"line\": 172,\n                        \"column\": 18\n                      },\n                      \"end\": {\n                        \"line\": 174,\n                        \"column\": 18\n                      }\n                    },\n                    \"moduleName\": \"garaje/templates/ipad.hbs\"\n                  },\n                  isEmpty: false,\n                  arity: 0,\n                  cachedFragment: null,\n                  hasRendered: false,\n                  buildFragment: function buildFragment(dom) {\n                    var el0 = dom.createDocumentFragment();\n                    var el1 = dom.createTextNode(\"                  \");\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createComment(\"\");\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createTextNode(\"\\n\");\n                    dom.appendChild(el0, el1);\n                    return el0;\n                  },\n                  buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                    var morphs = new Array(1);\n                    morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                    return morphs;\n                  },\n                  statements: [\n                    [\"inline\",\"async-button\",[],[\"action\",\"enableNdaBcc\",\"class\",\"btn btn--small btn--blue\",\"default\",\"Enable\",\"pending\",\"Enabling...\"],[\"loc\",[null,[173,18],[173,128]]]]\n                  ],\n                  locals: [],\n                  templates: []\n                };\n              }());\n              var child1 = (function() {\n                return {\n                  meta: {\n                    \"fragmentReason\": false,\n                    \"revision\": \"Ember@2.2.0-beta.1\",\n                    \"loc\": {\n                      \"source\": null,\n                      \"start\": {\n                        \"line\": 174,\n                        \"column\": 18\n                      },\n                      \"end\": {\n                        \"line\": 176,\n                        \"column\": 16\n                      }\n                    },\n                    \"moduleName\": \"garaje/templates/ipad.hbs\"\n                  },\n                  isEmpty: false,\n                  arity: 0,\n                  cachedFragment: null,\n                  hasRendered: false,\n                  buildFragment: function buildFragment(dom) {\n                    var el0 = dom.createDocumentFragment();\n                    var el1 = dom.createTextNode(\"                  \");\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createElement(\"a\");\n                    dom.setAttribute(el1,\"href\",\"#\");\n                    dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue\");\n                    var el2 = dom.createTextNode(\"Enable\");\n                    dom.appendChild(el1, el2);\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createTextNode(\"\\n                \");\n                    dom.appendChild(el0, el1);\n                    return el0;\n                  },\n                  buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                    var element23 = dom.childAt(fragment, [1]);\n                    var morphs = new Array(1);\n                    morphs[0] = dom.createElementMorph(element23);\n                    return morphs;\n                  },\n                  statements: [\n                    [\"element\",\"action\",[\"editEmail\"],[],[\"loc\",[null,[175,30],[175,52]]]]\n                  ],\n                  locals: [],\n                  templates: []\n                };\n              }());\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 172,\n                      \"column\": 18\n                    },\n                    \"end\": {\n                      \"line\": 176,\n                      \"column\": 16\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/ipad.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createComment(\"\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                  dom.insertBoundary(fragment, 0);\n                  dom.insertBoundary(fragment, null);\n                  return morphs;\n                },\n                statements: [\n                  [\"block\",\"if\",[[\"get\",\"model.ndaBccEmail\",[\"loc\",[null,[172,28],[172,45]]]]],[],0,1,[\"loc\",[null,[172,18],[176,16]]]]\n                ],\n                locals: [],\n                templates: [child0, child1]\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 170,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 176,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"if\",[[\"get\",\"ndaBccEnabled\",[\"loc\",[null,[170,28],[170,41]]]]],[],0,1,[\"loc\",[null,[170,18],[176,16]]]]\n              ],\n              locals: [],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 162,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 177,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[163,22],[163,32]]]]],[],0,1,[\"loc\",[null,[163,16],[176,23]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        var child3 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 180,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 182,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"partial\",[\"ipad/nda-bcc\"],[],[\"loc\",[null,[181,14],[181,40]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 146,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 184,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-nda-bcc\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"flex flex-center\");\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n            var el4 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"img\");\n            dom.setAttribute(el4,\"src\",\"assets/images/features/email.png\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n            var el4 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"h4\");\n            var el5 = dom.createTextNode(\"Email signed agreements\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            dom.setAttribute(el4,\"class\",\"m0\");\n            var el5 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createComment(\"\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"                \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"            \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element25 = dom.childAt(fragment, [1]);\n            var element26 = dom.childAt(element25, [1]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(dom.childAt(element26, [3, 3]),1,1);\n            morphs[1] = dom.createMorphAt(element26,5,5);\n            morphs[2] = dom.createMorphAt(element25,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"model.ndaBccEmail\",[\"loc\",[null,[155,24],[155,41]]]]],[],0,1,[\"loc\",[null,[155,18],[159,25]]]],\n            [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[162,41],[162,44]]]]],[],[]]],2,null,[\"loc\",[null,[162,14],[177,35]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[180,25],[180,35]]]]],[\"class\",\"js-tokenized\"],3,null,[\"loc\",[null,[180,12],[182,26]]]]\n          ],\n          locals: [\"box\"],\n          templates: [child0, child1, child2, child3]\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 199,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 200,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: true,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 200,\n                      \"column\": 18\n                    },\n                    \"end\": {\n                      \"line\": 202,\n                      \"column\": 18\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/ipad.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                  \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"a\");\n                  dom.setAttribute(el1,\"href\",\"#\");\n                  dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue js-edit-box\");\n                  var el2 = dom.createTextNode(\"Edit\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element21 = dom.childAt(fragment, [1]);\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createElementMorph(element21);\n                  return morphs;\n                },\n                statements: [\n                  [\"element\",\"action\",[\"editBox\"],[],[\"loc\",[null,[201,30],[201,50]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 202,\n                      \"column\": 18\n                    },\n                    \"end\": {\n                      \"line\": 204,\n                      \"column\": 16\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/ipad.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                  \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"a\");\n                  dom.setAttribute(el1,\"href\",\"#\");\n                  dom.setAttribute(el1,\"class\",\"btn btn--small btn--blue js-enable-box\");\n                  var el2 = dom.createTextNode(\"Enable\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n                \");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var element20 = dom.childAt(fragment, [1]);\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createElementMorph(element20);\n                  return morphs;\n                },\n                statements: [\n                  [\"element\",\"action\",[\"enableBox\"],[],[\"loc\",[null,[203,30],[203,52]]]]\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 200,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 204,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"if\",[[\"get\",\"boxFolderName\",[\"loc\",[null,[200,28],[200,41]]]]],[],0,1,[\"loc\",[null,[200,18],[204,16]]]]\n              ],\n              locals: [],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 198,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 205,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[199,22],[199,32]]]]],[],0,1,[\"loc\",[null,[199,16],[204,23]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 213,\n                    \"column\": 18\n                  },\n                  \"end\": {\n                    \"line\": 216,\n                    \"column\": 18\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"label\");\n                var el2 = dom.createTextNode(\"Box Folder\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n                    \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"span\");\n                dom.setAttribute(el1,\"class\",\"input disabled js-box-folder-name\");\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(dom.childAt(fragment, [3]),0,0);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"boxFolderName\",[\"loc\",[null,[215,68],[215,85]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 224,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 226,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"a\");\n                dom.setAttribute(el1,\"class\",\"btn btn--small btn--outline right m1 js-disable-box\");\n                var el2 = dom.createTextNode(\"Disable\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element18 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element18);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"disableBox\"],[],[\"loc\",[null,[225,19],[225,42]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 208,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 227,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n              var el2 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"div\");\n              dom.setAttribute(el2,\"class\",\"col col-6\");\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"p\");\n              var el4 = dom.createTextNode(\"\\n                    Choose a Box folder to receive a PDF of each signed agreement.\\n                    \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"a\");\n              dom.setAttribute(el4,\"href\",\"https://help.envoy.co/api-and-integrations/box-nda-integration/\");\n              dom.setAttribute(el4,\"target\",\"_blank\");\n              dom.setAttribute(el4,\"class\",\"help\");\n              dom.setAttribute(el4,\"tabindex\",\"-1\");\n              var el5 = dom.createTextNode(\"Learn more\");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element19 = dom.childAt(fragment, [1, 1]);\n              var morphs = new Array(3);\n              morphs[0] = dom.createMorphAt(element19,1,1);\n              morphs[1] = dom.createMorphAt(element19,3,3);\n              morphs[2] = dom.createMorphAt(fragment,3,3,contextualElement);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"box-file-picker\",[],[\"picked\",\"pickedFolder\",\"boxClientId\",[\"subexpr\",\"@mut\",[[\"get\",\"boxClientId\",[\"loc\",[null,[211,70],[211,81]]]]],[],[]]],[\"loc\",[null,[211,18],[211,83]]]],\n              [\"block\",\"if\",[[\"get\",\"boxFolderName\",[\"loc\",[null,[213,24],[213,37]]]]],[],0,null,[\"loc\",[null,[213,18],[216,25]]]],\n              [\"block\",\"if\",[[\"get\",\"boxFolderName\",[\"loc\",[null,[224,20],[224,33]]]]],[],1,null,[\"loc\",[null,[224,14],[226,21]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 186,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 229,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-box-integration\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"flex flex-center\");\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n            var el4 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"img\");\n            dom.setAttribute(el4,\"src\",\"assets/images/integrations/box.png\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n            var el4 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"h4\");\n            var el5 = dom.createTextNode(\"File signed agreements with Box\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            dom.setAttribute(el4,\"class\",\"m0\");\n            var el5 = dom.createTextNode(\"\\n                  Automatically upload signed documents to a specified Box folder.\\n                \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"            \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element22 = dom.childAt(fragment, [1]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(dom.childAt(element22, [1]),5,5);\n            morphs[1] = dom.createMorphAt(element22,3,3);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[198,41],[198,44]]]]],[],[]]],0,null,[\"loc\",[null,[198,14],[205,35]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[208,25],[208,35]]]]],[\"class\",\"js-tokenized\"],1,null,[\"loc\",[null,[208,12],[227,26]]]]\n          ],\n          locals: [\"box\"],\n          templates: [child0, child1]\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 246,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 253,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"nda-config\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"nda\",[\"loc\",[null,[248,18],[248,21]]]]],[],[]],\"config\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[249,19],[249,23]]]]],[],[]],\"showFlash\",[\"subexpr\",\"action\",[\"_showFlash\"],[],[\"loc\",[null,[250,22],[250,43]]]],\"hideFlash\",[\"subexpr\",\"action\",[\"_hideFlash\"],[],[\"loc\",[null,[251,22],[251,43]]]]],[\"loc\",[null,[247,12],[252,14]]]]\n            ],\n            locals: [\"nda\"],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 245,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 257,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"btn btn--medium btn--blue mt3\");\n            var el2 = dom.createTextNode(\"Add a purpose of visit\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element17 = dom.childAt(fragment, [2]);\n            var morphs = new Array(2);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            morphs[1] = dom.createElementMorph(element17);\n            dom.insertBoundary(fragment, 0);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"each\",[[\"get\",\"model.ndas\",[\"loc\",[null,[246,18],[246,28]]]]],[\"key\",\"@index\"],0,null,[\"loc\",[null,[246,10],[253,19]]]],\n            [\"element\",\"action\",[\"addNda\"],[],[\"loc\",[null,[255,51],[255,70]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child3 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 263,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 267,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"textarea\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.ndaText\",[\"loc\",[null,[265,31],[265,44]]]]],[],[]],\"classNames\",\"js-nda-text ndaTextArea p2 mt2 mb0 h5\"],[\"loc\",[null,[265,14],[265,97]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 267,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 302,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"ndaPreviewWrapper\");\n              var el2 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"div\");\n              dom.setAttribute(el2,\"class\",\"ndaPreviewIpad\");\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"div\");\n              dom.setAttribute(el3,\"class\",\"ndaPreviewIpadCamera\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"div\");\n              dom.setAttribute(el3,\"class\",\"ndaInnerWrapper\");\n              var el4 = dom.createTextNode(\"\\n                    \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"div\");\n              dom.setAttribute(el4,\"class\",\"ndaPreviewTopBar\");\n              var el5 = dom.createTextNode(\"\\n                      \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"div\");\n              dom.setAttribute(el5,\"class\",\"ndaPreviewBackArrow\");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n                      Sign our agreement\\n                      \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"div\");\n              dom.setAttribute(el5,\"class\",\"ndaPreviewDownArrow\");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n                    \");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n                    \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"div\");\n              dom.setAttribute(el4,\"class\",\"ndaPreview\");\n              var el5 = dom.createTextNode(\"\\n                      \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"div\");\n              dom.setAttribute(el5,\"class\",\"js-formatted-nda-text\");\n              var el6 = dom.createTextNode(\"\\n                        \");\n              dom.appendChild(el5, el6);\n              var el6 = dom.createComment(\"\");\n              dom.appendChild(el5, el6);\n              var el6 = dom.createTextNode(\"\\n                      \");\n              dom.appendChild(el5, el6);\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n\\n                      \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"div\");\n              dom.setAttribute(el5,\"class\",\"ndaPreviewSignature clearfix\");\n              var el6 = dom.createTextNode(\"\\n                        \");\n              dom.appendChild(el5, el6);\n              var el6 = dom.createElement(\"div\");\n              dom.setAttribute(el6,\"class\",\"col col-12\");\n              var el7 = dom.createTextNode(\"\\n                          \");\n              dom.appendChild(el6, el7);\n              var el7 = dom.createElement(\"label\");\n              var el8 = dom.createTextNode(\"Signature\");\n              dom.appendChild(el7, el8);\n              dom.appendChild(el6, el7);\n              var el7 = dom.createTextNode(\"\\n                        \");\n              dom.appendChild(el6, el7);\n              dom.appendChild(el5, el6);\n              var el6 = dom.createTextNode(\"\\n                        \");\n              dom.appendChild(el5, el6);\n              var el6 = dom.createElement(\"div\");\n              dom.setAttribute(el6,\"class\",\"col col-6 pr1\");\n              var el7 = dom.createTextNode(\"\\n                          \");\n              dom.appendChild(el6, el7);\n              var el7 = dom.createComment(\"\");\n              dom.appendChild(el6, el7);\n              var el7 = dom.createTextNode(\"\\n                          \");\n              dom.appendChild(el6, el7);\n              var el7 = dom.createElement(\"label\");\n              var el8 = dom.createTextNode(\"Name\");\n              dom.appendChild(el7, el8);\n              dom.appendChild(el6, el7);\n              var el7 = dom.createTextNode(\"\\n                        \");\n              dom.appendChild(el6, el7);\n              dom.appendChild(el5, el6);\n              var el6 = dom.createTextNode(\"\\n                        \");\n              dom.appendChild(el5, el6);\n              var el6 = dom.createElement(\"div\");\n              dom.setAttribute(el6,\"class\",\"col col-6 pl1\");\n              var el7 = dom.createTextNode(\"\\n                          \");\n              dom.appendChild(el6, el7);\n              var el7 = dom.createComment(\"\");\n              dom.appendChild(el6, el7);\n              var el7 = dom.createTextNode(\"\\n                          \");\n              dom.appendChild(el6, el7);\n              var el7 = dom.createElement(\"label\");\n              var el8 = dom.createTextNode(\"Date\");\n              dom.appendChild(el7, el8);\n              dom.appendChild(el6, el7);\n              var el7 = dom.createTextNode(\"\\n                        \");\n              dom.appendChild(el6, el7);\n              dom.appendChild(el5, el6);\n              var el6 = dom.createTextNode(\"\\n                      \");\n              dom.appendChild(el5, el6);\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n                    \");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"div\");\n              dom.setAttribute(el3,\"class\",\"ndaPreviewIpadHomeButton\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element8 = dom.childAt(fragment, [1, 1, 3]);\n              var element9 = dom.childAt(element8, [1, 3]);\n              var element10 = dom.childAt(element8, [3]);\n              var element11 = dom.childAt(element10, [3]);\n              var morphs = new Array(4);\n              morphs[0] = dom.createAttrMorph(element9, 'style');\n              morphs[1] = dom.createMorphAt(dom.childAt(element10, [1]),1,1);\n              morphs[2] = dom.createMorphAt(dom.childAt(element11, [3]),1,1);\n              morphs[3] = dom.createMorphAt(dom.childAt(element11, [5]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"style\",[\"get\",\"accentColor\",[\"loc\",[null,[276,63],[276,74]]]]],\n              [\"content\",\"ndaTextFormatted\",[\"loc\",[null,[280,24],[280,44]]]],\n              [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"currentLocation.admin.name\",[\"loc\",[null,[288,40],[288,66]]]]],[],[]]],[\"loc\",[null,[288,26],[288,68]]]],\n              [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"today\",[\"loc\",[null,[292,40],[292,45]]]]],[],[]]],[\"loc\",[null,[292,26],[292,47]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child2 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 310,\n                  \"column\": 16\n                },\n                \"end\": {\n                  \"line\": 312,\n                  \"column\": 16\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                  \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              dom.setAttribute(el1,\"class\",\"js-nda-variable\");\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),0,0);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"variable\",[\"loc\",[null,[311,48],[311,60]]]]\n            ],\n            locals: [\"variable\"],\n            templates: []\n          };\n        }());\n        var child3 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 317,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 325,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"label\");\n              dom.setAttribute(el1,\"class\",\"checkbox js-require-resign mb3 block\");\n              var el2 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"label\");\n              dom.setAttribute(el2,\"class\",\"toggle toggle--tiny\");\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                  \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"span\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n                Returning visitors must sign the new document\\n              \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1]),1,1);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.ndaRequireResign\",[\"loc\",[null,[320,50],[320,72]]]]],[],[]]],[\"loc\",[null,[320,18],[320,74]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 257,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 329,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"columns\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"segmentedControlToggle\");\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            var el4 = dom.createTextNode(\"Edit text\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            var el4 = dom.createTextNode(\"Preview\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\\n          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"ndaToolbar\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"ul\");\n            dom.setAttribute(el2,\"class\",\"ndaVariables m0 p0\");\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"li\");\n            var el4 = dom.createTextNode(\"Variables: (copy and paste)\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"li\");\n            var el4 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"                \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"br\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"Tip: Use underscores instead of colons for bold text. Eg.: \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"span\");\n            var el5 = dom.createTextNode(\"__NAME__\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" instead of \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"span\");\n            var el5 = dom.createTextNode(\"::NAME::\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element12 = dom.childAt(fragment, [1]);\n            var element13 = dom.childAt(element12, [1]);\n            var element14 = dom.childAt(element13, [1]);\n            var element15 = dom.childAt(element13, [2]);\n            var element16 = dom.childAt(fragment, [3]);\n            var morphs = new Array(8);\n            morphs[0] = dom.createAttrMorph(element14, 'class');\n            morphs[1] = dom.createElementMorph(element14);\n            morphs[2] = dom.createAttrMorph(element15, 'class');\n            morphs[3] = dom.createElementMorph(element15);\n            morphs[4] = dom.createMorphAt(element12,3,3);\n            morphs[5] = dom.createMorphAt(dom.childAt(element16, [1, 3]),1,1);\n            morphs[6] = dom.createMorphAt(element16,3,3);\n            morphs[7] = dom.createMorphAt(element16,5,5);\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"class\",[\"concat\",[\"segmentedControlLeft \",[\"subexpr\",\"if\",[[\"get\",\"isEditingNDA\",[\"loc\",[null,[260,82],[260,94]]]],\"selected\"],[],[\"loc\",[null,[260,77],[260,107]]]]]]],\n            [\"element\",\"action\",[\"setNDAEditActive\"],[],[\"loc\",[null,[260,19],[260,48]]]],\n            [\"attribute\",\"class\",[\"concat\",[\"segmentedControlRight \",[\"subexpr\",\"unless\",[[\"get\",\"isEditingNDA\",[\"loc\",[null,[260,200],[260,212]]]],\"selected\"],[],[\"loc\",[null,[260,191],[260,225]]]]]]],\n            [\"element\",\"action\",[\"setNDAPreviewActive\"],[],[\"loc\",[null,[260,129],[260,161]]]],\n            [\"block\",\"if\",[[\"get\",\"isEditingNDA\",[\"loc\",[null,[263,18],[263,30]]]]],[],0,1,[\"loc\",[null,[263,12],[302,19]]]],\n            [\"block\",\"each\",[[\"get\",\"variables\",[\"loc\",[null,[310,24],[310,33]]]]],[\"key\",\"@index\"],2,null,[\"loc\",[null,[310,16],[312,25]]]],\n            [\"block\",\"liquid-if\",[[\"get\",\"isNdaTextChanged\",[\"loc\",[null,[317,25],[317,41]]]]],[\"class\",\"small-6 columns js-tokenized\"],3,null,[\"loc\",[null,[317,12],[325,26]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--small btn--green js-nda-text-save\",\"default\",\"Save document\",\"pending\",\"Saving...\"],[\"loc\",[null,[327,12],[327,137]]]]\n          ],\n          locals: [],\n          templates: [child0, child1, child2, child3]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 131,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 330,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 flex flex-center mt3 js-nda-optional-toggle\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"style\",\"width:50px;height:50px\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"img\");\n          dom.setAttribute(el3,\"src\",\"assets/images/features/no-signature.png\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex-auto px2\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"h4\");\n          var el4 = dom.createTextNode(\"Allow visitors to decline signing\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"m0\");\n          var el4 = dom.createTextNode(\"Make NDA or waiver signing optional.\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"label\");\n          dom.setAttribute(el2,\"class\",\"toggle\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"id\",\"multiple-visitor-types\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 flex flex-center mt3 js-multiple-nda-toggle\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"style\",\"width:50px;height:50px\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"img\");\n          dom.setAttribute(el3,\"src\",\"assets/images/features/multi-visitor-types.png\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex-auto px2\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"h4\");\n          var el4 = dom.createTextNode(\"Multiple visitor types\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"m0\");\n          var el4 = dom.createTextNode(\"Configure document settings for guests based on the purpose of their visit.\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"label\");\n          dom.setAttribute(el2,\"class\",\"toggle\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(5);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 5]),1,1);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          morphs[2] = dom.createMorphAt(fragment,5,5,contextualElement);\n          morphs[3] = dom.createMorphAt(dom.childAt(fragment, [7, 5]),1,1);\n          morphs[4] = dom.createMorphAt(fragment,9,9,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"ndaOptional\",[\"loc\",[null,[141,44],[141,55]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[141,65],[141,73]]]]],[],[]]],[\"loc\",[null,[141,12],[141,75]]]],\n          [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditingEmail\",[\"loc\",[null,[146,32],[146,46]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"modelIsDirty\",[\"loc\",[null,[146,55],[146,67]]]]],[],[]],\"style\",\"margin-bottom:20px\",\"rollback\",\"rollback\"],0,null,[\"loc\",[null,[146,8],[184,26]]]],\n          [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditingBox\",[\"loc\",[null,[186,32],[186,44]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"modelIsDirty\",[\"loc\",[null,[186,53],[186,65]]]]],[],[]],\"style\",\"margin-bottom:20px\",\"rollback\",\"rollback\"],1,null,[\"loc\",[null,[186,8],[229,26]]]],\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"hasMultipleNda\",[\"loc\",[null,[240,44],[240,58]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isSaving\",[\"loc\",[null,[240,68],[240,82]]]]],[],[]]],[\"loc\",[null,[240,12],[240,84]]]],\n          [\"block\",\"if\",[[\"get\",\"hasMultipleNda\",[\"loc\",[null,[245,14],[245,28]]]]],[],2,3,[\"loc\",[null,[245,8],[329,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    var child6 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 367,\n                \"column\": 16\n              },\n              \"end\": {\n                \"line\": 369,\n                \"column\": 18\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                  Required? \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"icon-fieldAddedBy\");\n            dom.setAttribute(el1,\"title\",\"Added by Been Here Before\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element5 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element5);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"goToAnchor\",\"ipad\",\"#been-here-before\"],[],[\"loc\",[null,[368,91],[368,142]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 369,\n                \"column\": 18\n              },\n              \"end\": {\n                \"line\": 371,\n                \"column\": 16\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                  Required?\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 374,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 376,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"action js-has-email\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element4);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"deleteEmailField\"],[],[\"loc\",[null,[375,47],[375,76]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 359,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 378,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"field notEditable\");\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"right\");\n          var el3 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"label\");\n          dom.setAttribute(el3,\"class\",\"checkbox\");\n          var el4 = dom.createTextNode(\"\\n                \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"label\");\n          dom.setAttribute(el4,\"class\",\"toggle toggle--tiny\");\n          var el5 = dom.createTextNode(\"\\n                  \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n                  \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"span\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n                \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"              \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element6 = dom.childAt(fragment, [1]);\n          var element7 = dom.childAt(element6, [2, 1]);\n          var morphs = new Array(4);\n          morphs[0] = dom.createMorphAt(element6,0,0);\n          morphs[1] = dom.createMorphAt(dom.childAt(element7, [1]),1,1);\n          morphs[2] = dom.createMorphAt(element7,3,3);\n          morphs[3] = dom.createMorphAt(element6,4,4);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"localizedEmailAddress\",[\"loc\",[null,[360,41],[360,66]]]],\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-email-required\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.emailRequired\",[\"loc\",[null,[364,76],[364,95]]]]],[],[]]],[\"loc\",[null,[364,18],[364,97]]]],\n          [\"block\",\"if\",[[\"get\",\"beenHereBefore\",[\"loc\",[null,[367,22],[367,36]]]]],[],0,1,[\"loc\",[null,[367,16],[371,23]]]],\n          [\"block\",\"if\",[[\"get\",\"isEmailOrPhoneRemovable\",[\"loc\",[null,[374,18],[374,41]]]]],[],2,null,[\"loc\",[null,[374,12],[376,19]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    var child7 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 388,\n                \"column\": 16\n              },\n              \"end\": {\n                \"line\": 390,\n                \"column\": 18\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                  Required? \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"a\");\n            dom.setAttribute(el1,\"class\",\"icon-fieldAddedBy\");\n            dom.setAttribute(el1,\"title\",\"Added by Been Here Before\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element1);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"goToAnchor\",\"ipad\",\"#been-here-before\"],[],[\"loc\",[null,[389,91],[389,142]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 390,\n                \"column\": 18\n              },\n              \"end\": {\n                \"line\": 392,\n                \"column\": 16\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                  Required?\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 395,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 397,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"action js-has-phone\");\n            var el2 = dom.createTextNode(\"×\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element0);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"deletePhoneField\"],[],[\"loc\",[null,[396,47],[396,76]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 380,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 399,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"field notEditable\");\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"right\");\n          var el3 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"label\");\n          dom.setAttribute(el3,\"class\",\"checkbox\");\n          var el4 = dom.createTextNode(\"\\n                \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"label\");\n          dom.setAttribute(el4,\"class\",\"toggle toggle--tiny\");\n          var el5 = dom.createTextNode(\"\\n                  \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n                  \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"span\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n                \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"              \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var element3 = dom.childAt(element2, [2, 1]);\n          var morphs = new Array(4);\n          morphs[0] = dom.createMorphAt(element2,0,0);\n          morphs[1] = dom.createMorphAt(dom.childAt(element3, [1]),1,1);\n          morphs[2] = dom.createMorphAt(element3,3,3);\n          morphs[3] = dom.createMorphAt(element2,4,4);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"localizedPhoneNumber\",[\"loc\",[null,[381,41],[381,65]]]],\n          [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-phone-required\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"model.phoneRequired\",[\"loc\",[null,[385,76],[385,95]]]]],[],[]]],[\"loc\",[null,[385,18],[385,97]]]],\n          [\"block\",\"if\",[[\"get\",\"beenHereBefore\",[\"loc\",[null,[388,22],[388,36]]]]],[],0,1,[\"loc\",[null,[388,16],[392,23]]]],\n          [\"block\",\"if\",[[\"get\",\"isEmailOrPhoneRemovable\",[\"loc\",[null,[395,18],[395,41]]]]],[],2,null,[\"loc\",[null,[395,12],[397,19]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    var child8 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 409,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 428,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"custom-field\",[],[\"isDropdown\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.dropdown\",[\"loc\",[null,[416,25],[416,45]]]]],[],[]],\"isTextarea\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.isTextarea\",[\"loc\",[null,[417,25],[417,47]]]]],[],[]],\"label\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.label\",[\"loc\",[null,[418,20],[418,37]]]]],[],[]],\"options\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.options\",[\"loc\",[null,[419,22],[419,41]]]]],[],[]],\"required\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.required\",[\"loc\",[null,[420,23],[420,43]]]]],[],[]],\"textOptions\",[\"subexpr\",\"@mut\",[[\"get\",\"customField.textOptions\",[\"loc\",[null,[421,26],[421,49]]]]],[],[]],\"autofocus\",[\"subexpr\",\"@mut\",[[\"get\",\"autofocus\",[\"loc\",[null,[422,24],[422,33]]]]],[],[]],\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"customField\",[\"loc\",[null,[423,20],[423,31]]]]],[],[]],\"config\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[424,21],[424,26]]]]],[],[]],\"toggleRecalculateContainer\",[\"subexpr\",\"action\",[\"toggleRecalculateContainer\"],[\"target\",[\"get\",\"group\",[\"loc\",[null,[425,85],[425,90]]]]],[\"loc\",[null,[425,41],[425,91]]]],\"goToAnchor\",\"goToAnchor\"],[\"loc\",[null,[415,14],[427,16]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 408,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 429,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"sortable-item\",[],[\"tagName\",\"div\",\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"customField\",[\"loc\",[null,[411,20],[411,31]]]]],[],[]],\"group\",[\"subexpr\",\"@mut\",[[\"get\",\"group\",[\"loc\",[null,[412,20],[412,25]]]]],[],[]],\"handle\",\".custom-field\"],0,null,[\"loc\",[null,[409,12],[428,30]]]]\n          ],\n          locals: [\"customField\"],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 401,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 430,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"each\",[[\"get\",\"model.customFields\",[\"loc\",[null,[408,18],[408,36]]]]],[\"key\",\"@index\"],0,null,[\"loc\",[null,[408,10],[429,19]]]]\n        ],\n        locals: [\"group\"],\n        templates: [child0]\n      };\n    }());\n    var child9 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 433,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 433,\n                \"column\": 100\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"Add a new field\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 436,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 436,\n                    \"column\": 96\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"Email\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 435,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 437,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[436,41],[436,51]]]]],[],[]],\"on-select\",\"addEmailField\",\"type\",\"text\"],0,null,[\"loc\",[null,[436,14],[436,113]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 439,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 439,\n                    \"column\": 96\n                  }\n                },\n                \"moduleName\": \"garaje/templates/ipad.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"Phone\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 438,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 440,\n                  \"column\": 12\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"              \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[439,41],[439,51]]]]],[],[]],\"on-select\",\"addPhoneField\",\"type\",\"text\"],0,null,[\"loc\",[null,[439,14],[439,113]]]]\n            ],\n            locals: [],\n            templates: [child0]\n          };\n        }());\n        var child2 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 441,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 441,\n                  \"column\": 100\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"Text field\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child3 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 442,\n                  \"column\": 12\n                },\n                \"end\": {\n                  \"line\": 442,\n                  \"column\": 102\n                }\n              },\n              \"moduleName\": \"garaje/templates/ipad.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"Dropdown\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 434,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 443,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/templates/ipad.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(4);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            morphs[1] = dom.createMorphAt(fragment,1,1,contextualElement);\n            morphs[2] = dom.createMorphAt(fragment,3,3,contextualElement);\n            morphs[3] = dom.createMorphAt(fragment,5,5,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"unless\",[[\"get\",\"model.hasEmail\",[\"loc\",[null,[435,22],[435,36]]]]],[],0,null,[\"loc\",[null,[435,12],[437,23]]]],\n            [\"block\",\"unless\",[[\"get\",\"model.hasPhone\",[\"loc\",[null,[438,22],[438,36]]]]],[],1,null,[\"loc\",[null,[438,12],[440,23]]]],\n            [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[441,39],[441,49]]]]],[],[]],\"on-select\",\"addCustomField\",\"type\",\"text\"],2,null,[\"loc\",[null,[441,12],[441,117]]]],\n            [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[442,39],[442,49]]]]],[],[]],\"on-select\",\"addCustomField\",\"type\",\"dropdown\"],3,null,[\"loc\",[null,[442,12],[442,119]]]]\n          ],\n          locals: [\"parentList\"],\n          templates: [child0, child1, child2, child3]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 432,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 444,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/ipad.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"ic-menu-trigger\",[],[\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"parentMenu\",[\"loc\",[null,[433,40],[433,50]]]]],[],[]],\"class\",\"btn btn--small btn--blue\"],0,null,[\"loc\",[null,[433,10],[433,120]]]],\n          [\"block\",\"ic-menu-list\",[],[\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"parentMenu\",[\"loc\",[null,[434,37],[434,47]]]]],[],[]]],1,null,[\"loc\",[null,[434,10],[443,27]]]]\n        ],\n        locals: [\"parentMenu\"],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 453,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/ipad.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Welcome Screen\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"id\",\"been-here-before\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 flex flex-center mt3\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/peace.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Been here before?\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0\");\n        var el7 = dom.createTextNode(\"Give returning visitors the option for quicker sign-in.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"label\");\n        dom.setAttribute(el5,\"class\",\"toggle\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 flex flex-center mt3\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/signout.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Self sign-out\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0\");\n        var el7 = dom.createTextNode(\"Allow visitors to sign themselves out.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"label\");\n        dom.setAttribute(el5,\"class\",\"toggle\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"id\",\"js-signed-agreements\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Signed Agreements\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"m0\");\n        var el5 = dom.createTextNode(\"Configure settings for NDA or waiver signing. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/signed-agreements/how-do-i-change-signed-agreement-settings/\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 flex flex-center mt3 js-nda-toggle\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/signature.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Document signing\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0\");\n        var el7 = dom.createTextNode(\"Have your visitors sign an NDA or waiver.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"label\");\n        dom.setAttribute(el5,\"class\",\"toggle\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el3,\"class\",\"js-visitor-information\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"id\",\"js-custom-fields\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Visitor Sign-in\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 grayDark\");\n        var el5 = dom.createTextNode(\"Select and create fields you’d like your visitors to complete upon sign-in. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/visitors-and-deliveries/how-do-i-edit-the-information-we-collect-from-visitors/\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 flex flex-center mt3 js-visitor-photos\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/selfie.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Visitor photos\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0\");\n        var el7 = dom.createTextNode(\"Take a photo of each visitor for easy recognition and increased security.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"label\");\n        dom.setAttribute(el5,\"class\",\"toggle\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"bg-grayLightest border rounded p2 mt3 fieldSorter\");\n        dom.setAttribute(el4,\"id\",\"visitor-information\");\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"field notEditable\");\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.setAttribute(el6,\"class\",\"right label checkbox\");\n        dom.setAttribute(el6,\"style\",\"margin-top:3px;\");\n        var el7 = dom.createTextNode(\"Required\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"br\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"br\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element32 = dom.childAt(fragment, [0]);\n        var element33 = dom.childAt(element32, [1, 1]);\n        var element34 = dom.childAt(element33, [7]);\n        var element35 = dom.childAt(element32, [3, 1]);\n        var element36 = dom.childAt(element32, [5]);\n        var element37 = dom.childAt(element36, [1]);\n        var element38 = dom.childAt(element37, [7]);\n        var morphs = new Array(16);\n        morphs[0] = dom.createMorphAt(element33,3,3);\n        morphs[1] = dom.createMorphAt(element33,5,5);\n        morphs[2] = dom.createMorphAt(dom.childAt(element34, [3]),5,5);\n        morphs[3] = dom.createMorphAt(dom.childAt(element34, [5]),1,1);\n        morphs[4] = dom.createMorphAt(dom.childAt(element33, [9, 5]),1,1);\n        morphs[5] = dom.createMorphAt(element33,11,11);\n        morphs[6] = dom.createMorphAt(dom.childAt(element35, [5, 5]),1,1);\n        morphs[7] = dom.createMorphAt(element35,7,7);\n        morphs[8] = dom.createElementMorph(element36);\n        morphs[9] = dom.createMorphAt(dom.childAt(element37, [5, 5]),1,1);\n        morphs[10] = dom.createMorphAt(dom.childAt(element38, [1]),0,0);\n        morphs[11] = dom.createMorphAt(element38,3,3);\n        morphs[12] = dom.createMorphAt(element38,5,5);\n        morphs[13] = dom.createMorphAt(element38,7,7);\n        morphs[14] = dom.createMorphAt(element38,9,9);\n        morphs[15] = dom.createMorphAt(element38,14,14);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"subscription.isFreePlanEnabled\",[\"loc\",[null,[5,12],[5,42]]]]],[],0,1,[\"loc\",[null,[5,6],[9,13]]]],\n        [\"block\",\"unless\",[[\"get\",\"subscription.isFreePlanEnabled\",[\"loc\",[null,[11,16],[11,46]]]]],[],2,null,[\"loc\",[null,[11,6],[30,17]]]],\n        [\"block\",\"unless\",[[\"get\",\"hasEmailOrPhone\",[\"loc\",[null,[39,20],[39,35]]]]],[],3,null,[\"loc\",[null,[39,10],[41,21]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-been-here-before\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"beenHereBefore\",[\"loc\",[null,[46,18],[46,32]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isBeenHereBeforeDisabled\",[\"loc\",[null,[47,19],[47,43]]]]],[],[]]],[\"loc\",[null,[44,10],[48,12]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-self-sign-out\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"selfSignOut\",[\"loc\",[null,[65,18],[65,29]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isSaving\",[\"loc\",[null,[66,19],[66,33]]]]],[],[]]],[\"loc\",[null,[62,10],[67,12]]]],\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditingDeliveries\",[\"loc\",[null,[72,30],[72,49]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"deliveryHasChanged\",[\"loc\",[null,[72,58],[72,76]]]]],[],[]],\"rollback\",\"rollback\"],4,null,[\"loc\",[null,[72,6],[107,24]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"hasNdaPage\",[\"loc\",[null,[126,42],[126,52]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isSaving\",[\"loc\",[null,[126,62],[126,76]]]]],[],[]]],[\"loc\",[null,[126,10],[126,78]]]],\n        [\"block\",\"liquid-if\",[[\"get\",\"hasNdaPage\",[\"loc\",[null,[131,19],[131,29]]]]],[\"class\",\"columns js-tokenized js-nda-fields\"],5,null,[\"loc\",[null,[131,6],[330,20]]]],\n        [\"element\",\"action\",[\"save\"],[\"on\",\"submit\"],[\"loc\",[null,[334,8],[334,37]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"hasPhotoPage\",[\"loc\",[null,[348,42],[348,54]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isSaving\",[\"loc\",[null,[348,64],[348,78]]]]],[],[]]],[\"loc\",[null,[348,10],[348,80]]]],\n        [\"content\",\"localizedFullName\",[\"loc\",[null,[355,39],[355,60]]]],\n        [\"block\",\"if\",[[\"get\",\"model.hasEmail\",[\"loc\",[null,[359,14],[359,28]]]]],[],6,null,[\"loc\",[null,[359,8],[378,15]]]],\n        [\"block\",\"if\",[[\"get\",\"model.hasPhone\",[\"loc\",[null,[380,14],[380,28]]]]],[],7,null,[\"loc\",[null,[380,8],[399,15]]]],\n        [\"block\",\"envoy-sortable\",[],[\"parentClass\",\".fieldSorter\",\"collectionLength\",[\"subexpr\",\"@mut\",[[\"get\",\"model.customFields.length\",[\"loc\",[null,[403,27],[403,52]]]]],[],[]],\"toggleRecalculateContainer\",\"toggleRecalculateContainer\",\"recalculateContainer\",[\"subexpr\",\"action\",[\"recalculateDraggableContainer\"],[],[\"loc\",[null,[405,31],[405,71]]]],\"onChange\",\"reorderCustomFields\"],8,null,[\"loc\",[null,[401,8],[430,27]]]],\n        [\"block\",\"ic-menu\",[],[],9,null,[\"loc\",[null,[432,8],[444,20]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"save\",\"classNames\",\"btn btn--small btn--green\",\"default\",\"Save fields\",\"pending\",\"Saving...\"],[\"loc\",[null,[448,8],[448,119]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5, child6, child7, child8, child9]\n    };\n  }()));\n\n});","define('garaje/templates/ipads', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": false,\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 179,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/ipads.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"form\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el2,\"class\",\"row\");\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        var el5 = dom.createTextNode(\"iPads\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"ul\");\n        dom.setAttribute(el4,\"class\",\"small-block-grid-2 medium-block-grid-3 deviceList\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/ipad/air-2013.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus good\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"George\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iPad Air\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iOS:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"8.0.1\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Envoy 5G\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.23\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"App:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Up to Date\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/ipad/older.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus warn\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"John\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iPad 2\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iOS:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"8.0 \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"span\");\n        dom.setAttribute(el9,\"class\",\"updateAvailable\");\n        var el10 = dom.createTextNode(\"Update Available\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Envoy 5G\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.26\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"App:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Up to Date\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/ipad/mini2-2013.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus bad\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Paul\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iPad Mini 2\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iOS:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"7.2 \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"span\");\n        dom.setAttribute(el9,\"class\",\"updateAvailable\");\n        var el10 = dom.createTextNode(\"Update Available\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Disconnected\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Disconnected\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"App:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Up to Date\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/ipad/air2-2014.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus good sleep\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Ringo\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iPad Air 2\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iOS:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"8.0.1\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Envoy 5G\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.49\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"App:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Up to Date\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/ipad/mini3-2014.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus warn sleep\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Yoko\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iPad mini 3\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iOS:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"8.0.1\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Envoy 5G\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.49\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"App:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"span\");\n        dom.setAttribute(el9,\"class\",\"updateAvailable\");\n        var el10 = dom.createTextNode(\"Update Available\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/ipad/mini-2012.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus good\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Jude\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iPad mini\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"iOS:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"8.0.1\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Envoy 5G\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.49\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"App:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Up to Date\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        dom.setAttribute(el3,\"href\",\"#\");\n        dom.setAttribute(el3,\"class\",\"btn btn--small btn--blue\");\n        var el4 = dom.createTextNode(\"Add new iPad\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/loading', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 3,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/loading.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"loader\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        dom.setNamespace(\"http://www.w3.org/2000/svg\");\n        var el2 = dom.createElement(\"svg\");\n        dom.setAttribute(el2,\"width\",\"80\");\n        dom.setAttribute(el2,\"height\",\"80\");\n        dom.setAttribute(el2,\"viewBox\",\"0 0 44 44\");\n        dom.setAttribute(el2,\"xmlns\",\"http://www.w3.org/2000/svg\");\n        dom.setAttribute(el2,\"stroke\",\"#4E92DF\");\n        var el3 = dom.createElement(\"g\");\n        dom.setAttribute(el3,\"fill\",\"none\");\n        var el4 = dom.createElement(\"circle\");\n        dom.setAttribute(el4,\"cx\",\"22\");\n        dom.setAttribute(el4,\"cy\",\"22\");\n        dom.setAttribute(el4,\"r\",\"1\");\n        var el5 = dom.createElement(\"animate\");\n        dom.setAttribute(el5,\"attributeName\",\"r\");\n        dom.setAttribute(el5,\"begin\",\"0s\");\n        dom.setAttribute(el5,\"dur\",\"1.8s\");\n        dom.setAttribute(el5,\"values\",\"1; 20\");\n        dom.setAttribute(el5,\"calcMode\",\"spline\");\n        dom.setAttribute(el5,\"keyTimes\",\"0; 1\");\n        dom.setAttribute(el5,\"keySplines\",\"0.165, 0.84, 0.44, 1\");\n        dom.setAttribute(el5,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"animate\");\n        dom.setAttribute(el5,\"attributeName\",\"stroke-opacity\");\n        dom.setAttribute(el5,\"begin\",\"0s\");\n        dom.setAttribute(el5,\"dur\",\"1.8s\");\n        dom.setAttribute(el5,\"values\",\"1; 0\");\n        dom.setAttribute(el5,\"calcMode\",\"spline\");\n        dom.setAttribute(el5,\"keyTimes\",\"0; 1\");\n        dom.setAttribute(el5,\"keySplines\",\"0.3, 0.61, 0.355, 1\");\n        dom.setAttribute(el5,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"circle\");\n        dom.setAttribute(el4,\"cx\",\"22\");\n        dom.setAttribute(el4,\"cy\",\"22\");\n        dom.setAttribute(el4,\"r\",\"1\");\n        var el5 = dom.createElement(\"animate\");\n        dom.setAttribute(el5,\"attributeName\",\"r\");\n        dom.setAttribute(el5,\"begin\",\"-0.9s\");\n        dom.setAttribute(el5,\"dur\",\"1.8s\");\n        dom.setAttribute(el5,\"values\",\"1; 20\");\n        dom.setAttribute(el5,\"calcMode\",\"spline\");\n        dom.setAttribute(el5,\"keyTimes\",\"0; 1\");\n        dom.setAttribute(el5,\"keySplines\",\"0.165, 0.84, 0.44, 1\");\n        dom.setAttribute(el5,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"animate\");\n        dom.setAttribute(el5,\"attributeName\",\"stroke-opacity\");\n        dom.setAttribute(el5,\"begin\",\"-0.9s\");\n        dom.setAttribute(el5,\"dur\",\"1.8s\");\n        dom.setAttribute(el5,\"values\",\"1; 0\");\n        dom.setAttribute(el5,\"calcMode\",\"spline\");\n        dom.setAttribute(el5,\"keyTimes\",\"0; 1\");\n        dom.setAttribute(el5,\"keySplines\",\"0.3, 0.61, 0.355, 1\");\n        dom.setAttribute(el5,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/location/-disabled', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 2,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 23,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"bg-orange js-upgrade-plan-banner\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"container px2 py3\");\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"h2\");\n            dom.setAttribute(el3,\"class\",\"white\");\n            var el4 = dom.createTextNode(\"Multiple Locations require a Premium Subscription.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            dom.setAttribute(el3,\"class\",\"white m0 mt1\");\n            var el4 = dom.createTextNode(\"By adding this location, you will be automatically upgraded to Premium and charged \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\" for each location. A full price breakdown is available below.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"container px2 py3 mt2 mb3\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h2\");\n            var el3 = dom.createTextNode(\"Upgrade your Envoy account\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element1 = dom.childAt(fragment, [3]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1, 3]),1,1);\n            morphs[1] = dom.createMorphAt(element1,3,3);\n            morphs[2] = dom.createMorphAt(element1,5,5);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"multiLocationPrice\",[\"loc\",[null,[6,115],[6,137]]]],\n            [\"inline\",\"plan-ledger\",[],[\"coupon\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.coupon\",[\"loc\",[null,[12,15],[12,34]]]]],[],[]],\"locations\",[\"subexpr\",\"@mut\",[[\"get\",\"activeAndCurrentLocations\",[\"loc\",[null,[13,18],[13,43]]]]],[],[]],\"plan\",[\"subexpr\",\"@mut\",[[\"get\",\"currentPlan\",[\"loc\",[null,[14,13],[14,24]]]]],[],[]],\"period\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.period\",[\"loc\",[null,[15,15],[15,34]]]]],[],[]],\"periodStart\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.periodStart\",[\"loc\",[null,[16,20],[16,44]]]]],[],[]],\"periodEnd\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.periodEnd\",[\"loc\",[null,[17,18],[17,40]]]]],[],[]],\"creditBalance\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.creditBalance\",[\"loc\",[null,[18,22],[18,48]]]]],[],[]],\"newPlan\",[\"subexpr\",\"@mut\",[[\"get\",\"multiLocationPlan\",[\"loc\",[null,[19,16],[19,33]]]]],[],[]]],[\"loc\",[null,[11,6],[20,8]]]],\n            [\"inline\",\"async-button\",[],[\"action\",\"enable\",\"class\",\"btn btn--green mt3 mx-auto\",\"default\",\"Upgrade and Activate\",\"pending\",\"Activating...\"],[\"loc\",[null,[21,6],[21,128]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 30,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 32,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"p\");\n                dom.setAttribute(el1,\"class\",\"white m0 mt1\");\n                var el2 = dom.createTextNode(\"Activating this location will add \");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createComment(\"\");\n                dom.appendChild(el1, el2);\n                var el2 = dom.createTextNode(\" to your subscription.\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n                return morphs;\n              },\n              statements: [\n                [\"content\",\"multiLocationPrice\",[\"loc\",[null,[31,74],[31,96]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 32,\n                      \"column\": 14\n                    },\n                    \"end\": {\n                      \"line\": 34,\n                      \"column\": 14\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"p\");\n                  dom.setAttribute(el1,\"class\",\"white m0 mt1\");\n                  var el2 = dom.createTextNode(\"Activate this location for no additional charge.\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes() { return []; },\n                statements: [\n\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            var child1 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 34,\n                      \"column\": 14\n                    },\n                    \"end\": {\n                      \"line\": 36,\n                      \"column\": 14\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"                \");\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createElement(\"p\");\n                  dom.setAttribute(el1,\"class\",\"white m0 mt1\");\n                  var el2 = dom.createTextNode(\"You can have unlimited active locations while on trial.\");\n                  dom.appendChild(el1, el2);\n                  dom.appendChild(el0, el1);\n                  var el1 = dom.createTextNode(\"\\n              \");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes() { return []; },\n                statements: [\n\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 32,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 36,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                dom.insertBoundary(fragment, null);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"if\",[[\"get\",\"isSubscribed\",[\"loc\",[null,[32,24],[32,36]]]]],[],0,1,[\"loc\",[null,[32,14],[36,14]]]]\n              ],\n              locals: [],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 26,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 40,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"flex flex-center\");\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"div\");\n              dom.setAttribute(el2,\"class\",\"flex-auto\");\n              var el3 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"h2\");\n              dom.setAttribute(el3,\"class\",\"white\");\n              var el4 = dom.createTextNode(\"This location is inactive.\");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createComment(\"\");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"            \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [1]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),3,3);\n              morphs[1] = dom.createMorphAt(element0,3,3);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"willChargeToAddOrActivateLocation\",[\"loc\",[null,[30,20],[30,53]]]]],[],0,1,[\"loc\",[null,[30,14],[36,21]]]],\n              [\"inline\",\"async-button\",[],[\"action\",\"enable\",\"class\",\"btn btn--white m0\",\"default\",\"Activate\",\"pending\",\"Activating...\"],[\"loc\",[null,[38,12],[38,113]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 40,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 43,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"h2\");\n              dom.setAttribute(el1,\"class\",\"white\");\n              var el2 = dom.createTextNode(\"This location is inactive.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"p\");\n              dom.setAttribute(el1,\"class\",\"white m0 mt1\");\n              var el2 = dom.createTextNode(\"Please contact your admin to enable this location.\");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 23,\n                \"column\": 2\n              },\n              \"end\": {\n                \"line\": 46,\n                \"column\": 2\n              }\n            },\n            \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"bg-blue js-is-disabled\");\n            var el2 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"container px2 py3\");\n            var el3 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"      \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"subscription.canAccessBilling\",[\"loc\",[null,[26,14],[26,43]]]]],[],0,1,[\"loc\",[null,[26,8],[43,15]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"missing-wrapper\",\n            \"problems\": [\n              \"wrong-type\"\n            ]\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 47,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"isUpgradeRequired\",[\"loc\",[null,[2,8],[2,25]]]]],[],0,1,[\"loc\",[null,[2,2],[46,9]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 47,\n            \"column\": 14\n          }\n        },\n        \"moduleName\": \"garaje/templates/location/-disabled.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"liquid-if\",[[\"get\",\"model.disabled\",[\"loc\",[null,[1,13],[1,27]]]]],[\"class\",\"js-liquid-disabled-location\",\"containerless\",true],0,null,[\"loc\",[null,[1,0],[47,14]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/location', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 38,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 65,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/location.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"form\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"fieldset\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"h2\");\n          dom.setAttribute(el3,\"class\",\"mt4\");\n          var el4 = dom.createTextNode(\"Logo\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"h5 grayDark\");\n          var el4 = dom.createTextNode(\"Your logo will appear on the iPad, visitor badges, and pre-registration emails. \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"href\",\"https://help.envoy.co/getting-started/personalize-account-settings/#edit-logo-and-select-accent-color\");\n          dom.setAttribute(el4,\"target\",\"_blank\");\n          dom.setAttribute(el4,\"class\",\"help\");\n          dom.setAttribute(el4,\"tabindex\",\"-1\");\n          var el5 = dom.createTextNode(\"Learn more\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"h2\");\n          dom.setAttribute(el3,\"class\",\"mt4\");\n          var el4 = dom.createTextNode(\"Accent Color\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"p\");\n          dom.setAttribute(el3,\"class\",\"h5 grayDark\");\n          var el4 = dom.createTextNode(\"Choose a custom accent color for the details on your iPad and pre-registration emails. \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"href\",\"https://help.envoy.co/getting-started/personalize-account-settings/#edit-logo-and-select-accent-color\");\n          dom.setAttribute(el4,\"target\",\"_blank\");\n          dom.setAttribute(el4,\"class\",\"help\");\n          dom.setAttribute(el4,\"tabindex\",\"-1\");\n          var el5 = dom.createTextNode(\"Learn more\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1, 1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(element1,5,5);\n          morphs[1] = dom.createMorphAt(element1,11,11);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"customize/company-logo\",[],[\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[45,15],[45,20]]]]],[],[]],\"class\",\"columns\",\"expandWelcomeImage\",[\"subexpr\",\"action\",[\"expandWelcomeImage\"],[],[\"loc\",[null,[47,25],[47,54]]]],\"expandSlideshow\",[\"subexpr\",\"action\",[\"expandSlideshow\"],[],[\"loc\",[null,[48,22],[48,48]]]],\"setLogo\",[\"subexpr\",\"action\",[\"setLogo\"],[],[\"loc\",[null,[49,14],[49,32]]]],\"deleteLogo\",[\"subexpr\",\"action\",[\"deleteLogo\"],[],[\"loc\",[null,[50,17],[50,38]]]],\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"this\",[\"loc\",[null,[51,13],[51,17]]]]],[],[]]],[\"loc\",[null,[44,6],[52,8]]]],\n          [\"inline\",\"customize/accent-color\",[],[\"locationId\",[\"subexpr\",\"@mut\",[[\"get\",\"model.id\",[\"loc\",[null,[58,17],[58,25]]]]],[],[]],\"color\",[\"subexpr\",\"@mut\",[[\"get\",\"model.color\",[\"loc\",[null,[59,12],[59,23]]]]],[],[]],\"class\",\"columns\",\"setColor\",[\"subexpr\",\"action\",[\"setColor\"],[],[\"loc\",[null,[61,15],[61,34]]]]],[\"loc\",[null,[57,6],[62,8]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 97,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 105,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/location.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"i18n-config\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[99,14],[99,19]]]]],[],[]],\"showFlash\",[\"subexpr\",\"action\",[\"_showFlash\"],[],[\"loc\",[null,[100,18],[100,39]]]],\"hideFlash\",[\"subexpr\",\"action\",[\"_hideFlash\"],[],[\"loc\",[null,[101,18],[101,39]]]],\"goToAnchor\",[\"subexpr\",\"action\",[\"_goToAnchor\"],[],[\"loc\",[null,[102,19],[102,41]]]],\"transitionToRoute\",[\"subexpr\",\"action\",[[\"get\",\"transitionToRoute\",[\"loc\",[null,[103,34],[103,51]]]]],[],[\"loc\",[null,[103,26],[103,52]]]]],[\"loc\",[null,[98,8],[104,10]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 107,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 117,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/location.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"js-disable-location\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"border rounded p2 my2 flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto pr2\");\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Deactivate location\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Temporarily disable sign-ins at this location.\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"a\");\n          dom.setAttribute(el3,\"class\",\"btn btn--small btn--redOutlineFill mr1\");\n          var el4 = dom.createTextNode(\"Deactivate\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1, 1, 3]);\n          var morphs = new Array(1);\n          morphs[0] = dom.createElementMorph(element0);\n          return morphs;\n        },\n        statements: [\n          [\"element\",\"action\",[\"disable\"],[],[\"loc\",[null,[114,62],[114,82]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 132,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/location.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el3,\"class\",\"js-location\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Location Admin\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 grayDark\");\n        var el5 = dom.createTextNode(\"Set the login credentials for your location’s iPad and web dashboard. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/getting-started/personalize-account-settings/#location-admin\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Receptionist\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 grayDark\");\n        var el5 = dom.createTextNode(\"The receptionist is the primary point of contact for Envoy notifications. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/getting-started/personalize-account-settings/#receptionist\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        var el6 = dom.createTextNode(\"Advanced\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"js-location-apikey\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"border rounded px2 py1 my2 flex flex-center\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"style\",\"width:50px;height:50px\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"img\");\n        dom.setAttribute(el7,\"src\",\"assets/images/features/api.png\");\n        dom.setAttribute(el7,\"width\",\"50\");\n        dom.setAttribute(el7,\"height\",\"50\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"flex-auto ml2\");\n        var el7 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"label\");\n        dom.setAttribute(el7,\"for\",\"_token-input\");\n        var el8 = dom.createTextNode(\"Your API Key\\n                \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"right\");\n        var el9 = dom.createTextNode(\"\\n                  \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"a\");\n        var el10 = dom.createTextNode(\"Regenerate\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"js-export-data\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"border rounded p2 my2 flex flex-center\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"flex-auto pr2\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"Export location data\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"p\");\n        dom.setAttribute(el7,\"class\",\"m0\");\n        var el8 = dom.createTextNode(\"Download a CSV file of your full visitor history.\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"class\",\"btn btn--small btn--blue mr1\");\n        var el7 = dom.createTextNode(\"Export\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element2 = dom.childAt(fragment, [0]);\n        var element3 = dom.childAt(element2, [1]);\n        var element4 = dom.childAt(element2, [3]);\n        var element5 = dom.childAt(element4, [1]);\n        var element6 = dom.childAt(element2, [7]);\n        var element7 = dom.childAt(element6, [1]);\n        var element8 = dom.childAt(element7, [3, 1, 3]);\n        var element9 = dom.childAt(element8, [1, 1, 1]);\n        var element10 = dom.childAt(element7, [9, 1, 3]);\n        var morphs = new Array(13);\n        morphs[0] = dom.createElementMorph(element3);\n        morphs[1] = dom.createMorphAt(dom.childAt(element3, [1]),1,1);\n        morphs[2] = dom.createElementMorph(element4);\n        morphs[3] = dom.createMorphAt(element5,5,5);\n        morphs[4] = dom.createMorphAt(element5,11,11);\n        morphs[5] = dom.createMorphAt(element2,5,5);\n        morphs[6] = dom.createElementMorph(element6);\n        morphs[7] = dom.createElementMorph(element9);\n        morphs[8] = dom.createMorphAt(element8,3,3);\n        morphs[9] = dom.createMorphAt(element8,5,5);\n        morphs[10] = dom.createMorphAt(element7,5,5);\n        morphs[11] = dom.createMorphAt(element7,7,7);\n        morphs[12] = dom.createAttrMorph(element10, 'href');\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"saveLocationInfo\"],[\"on\",\"submit\"],[\"loc\",[null,[2,8],[2,49]]]],\n        [\"inline\",\"location-info-w-map\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[5,12],[5,17]]]]],[],[]],\"modelId\",[\"subexpr\",\"@mut\",[[\"get\",\"model.id\",[\"loc\",[null,[6,14],[6,22]]]]],[],[]],\"callback\",[\"subexpr\",\"@mut\",[[\"get\",\"model.callback\",[\"loc\",[null,[7,15],[7,29]]]]],[],[]],\"title\",\"Location Info\",\"isEditingAddress\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isEditingAddress\",[\"loc\",[null,[9,23],[9,45]]]]],[],[]],\"persist\",\"save\"],[\"loc\",[null,[4,6],[11,8]]]],\n        [\"element\",\"action\",[\"save\"],[\"on\",\"submit\"],[\"loc\",[null,[15,8],[15,37]]]],\n        [\"inline\",\"admin-config\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model.admin\",[\"loc\",[null,[21,12],[21,23]]]]],[],[]],\"showFlash\",[\"subexpr\",\"action\",[\"_showFlash\"],[],[\"loc\",[null,[22,16],[22,37]]]],\"hideFlash\",[\"subexpr\",\"action\",[\"_hideFlash\"],[],[\"loc\",[null,[23,16],[23,37]]]],\"transitionToRoute\",[\"subexpr\",\"action\",[[\"get\",\"transitionToRoute\",[\"loc\",[null,[24,32],[24,49]]]]],[],[\"loc\",[null,[24,24],[24,50]]]]],[\"loc\",[null,[20,6],[25,8]]]],\n        [\"inline\",\"receptionist-config\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model.receptionist\",[\"loc\",[null,[30,12],[30,30]]]]],[],[]],\"showFlash\",[\"subexpr\",\"action\",[\"_showFlash\"],[],[\"loc\",[null,[31,16],[31,37]]]],\"hideFlash\",[\"subexpr\",\"action\",[\"_hideFlash\"],[],[\"loc\",[null,[32,16],[32,37]]]],\"transitionToRoute\",[\"subexpr\",\"action\",[[\"get\",\"transitionToRoute\",[\"loc\",[null,[33,32],[33,49]]]]],[],[\"loc\",[null,[33,24],[33,50]]]]],[\"loc\",[null,[29,6],[34,8]]]],\n        [\"block\",\"unless\",[[\"get\",\"subscription.isFreePlanEnabled\",[\"loc\",[null,[38,12],[38,42]]]]],[],0,null,[\"loc\",[null,[38,2],[65,13]]]],\n        [\"element\",\"action\",[\"save\"],[\"on\",\"submit\"],[\"loc\",[null,[67,8],[67,37]]]],\n        [\"element\",\"action\",[\"regenerateApiKey\"],[],[\"loc\",[null,[82,21],[82,50]]]],\n        [\"inline\",\"input\",[],[\"id\",\"_token-input\",\"class\",\"code location-apikey mb0\",\"spellcheck\",\"false\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.apiKey\",[\"loc\",[null,[89,20],[89,32]]]]],[],[]],\"readonly\",true],[\"loc\",[null,[85,14],[91,16]]]],\n        [\"inline\",\"inline-loading-spinner\",[],[\"promise\",[\"subexpr\",\"@mut\",[[\"get\",\"apiKeyCallback\",[\"loc\",[null,[92,47],[92,61]]]]],[],[]]],[\"loc\",[null,[92,14],[92,63]]]],\n        [\"block\",\"if\",[[\"get\",\"hasLocalizationVersion\",[\"loc\",[null,[97,12],[97,34]]]]],[],1,null,[\"loc\",[null,[97,6],[105,13]]]],\n        [\"block\",\"unless\",[[\"get\",\"model.disabled\",[\"loc\",[null,[107,16],[107,30]]]]],[],2,null,[\"loc\",[null,[107,6],[117,17]]]],\n        [\"attribute\",\"href\",[\"get\",\"exportUrl\",[\"loc\",[null,[125,20],[125,29]]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/login', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 16,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 16,\n              \"column\": 125\n            }\n          },\n          \"moduleName\": \"garaje/templates/login.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"lock\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" Log in\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 28,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/login.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"authenticate\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"authenticate-box\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"img\");\n        dom.setAttribute(el3,\"class\",\"authenticate-logo\");\n        dom.setAttribute(el3,\"src\",\"/assets/images/logo.svg\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"form\");\n        dom.setAttribute(el3,\"class\",\"new_user\");\n        dom.setAttribute(el3,\"id\",\"new_user\");\n        dom.setAttribute(el3,\"autocomplete\",\"off\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h3\");\n        dom.setAttribute(el4,\"class\",\"u-centered\");\n        var el5 = dom.createTextNode(\"Sign in to the Envoy Dashboard\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"fieldset\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"submit\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"forgotPassword\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"class\",\"login-help\");\n        var el6 = dom.createTextNode(\"Forgot your password?\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        dom.setAttribute(el3,\"style\",\"margin:40px auto;display:block;text-align:center;\");\n        var el4 = dom.createTextNode(\"Sign up\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [3]);\n        var element2 = dom.childAt(element1, [3]);\n        var element3 = dom.childAt(element2, [3]);\n        var element4 = dom.childAt(element2, [5, 1]);\n        var element5 = dom.childAt(element1, [5]);\n        var morphs = new Array(7);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createElementMorph(element2);\n        morphs[2] = dom.createMorphAt(dom.childAt(element3, [1]),1,1);\n        morphs[3] = dom.createMorphAt(dom.childAt(element3, [3]),1,1);\n        morphs[4] = dom.createMorphAt(dom.childAt(element3, [5]),1,1);\n        morphs[5] = dom.createElementMorph(element4);\n        morphs[6] = dom.createElementMorph(element5);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"flash-message\",[],[\"flashVisible\",[\"subexpr\",\"@mut\",[[\"get\",\"flashVisible\",[\"loc\",[null,[2,31],[2,43]]]]],[],[]],\"message\",[\"subexpr\",\"@mut\",[[\"get\",\"message\",[\"loc\",[null,[2,52],[2,59]]]]],[],[]],\"type\",[\"subexpr\",\"@mut\",[[\"get\",\"type\",[\"loc\",[null,[2,65],[2,69]]]]],[],[]],\"action\",\"hideFlash\"],[\"loc\",[null,[2,2],[2,90]]]],\n        [\"element\",\"action\",[\"authenticate\"],[\"on\",\"submit\"],[\"loc\",[null,[6,41],[6,78]]]],\n        [\"inline\",\"input\",[],[\"type\",\"email\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"identification\",[\"loc\",[null,[10,37],[10,51]]]]],[],[]],\"autofocus\",\"true\",\"placeholder\",\"Email Address\",\"class\",\"js-email\"],[\"loc\",[null,[10,10],[10,115]]]],\n        [\"inline\",\"input\",[],[\"type\",\"password\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"password\",[\"loc\",[null,[13,40],[13,48]]]]],[],[]],\"placeholder\",\"Password\",\"class\",\"js-password\"],[\"loc\",[null,[13,10],[13,93]]]],\n        [\"block\",\"async-button\",[],[\"class\",\"btn btn--medium btn--blue js-login\",\"action\",\"authenticate\"],0,null,[\"loc\",[null,[16,10],[16,142]]]],\n        [\"element\",\"action\",[\"redirectToEnvoy\",\"/users/password/new\"],[],[\"loc\",[null,[21,30],[21,80]]]],\n        [\"element\",\"action\",[\"redirectToEnvoy\",\"/users/sign_up\"],[],[\"loc\",[null,[25,65],[25,110]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/new-location/-upgrade', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 10,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/new-location/-upgrade.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"needsUpgrade js-upgrade-plan-banner\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"row\");\n          var el3 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"large-9 columns small-centered\");\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h2\");\n          var el5 = dom.createTextNode(\"Multiple Locations require a Premium Subscription.\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          var el5 = dom.createTextNode(\"By adding this location, you will be automatically upgraded to Premium and charged \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\" for each location. A full price breakdown is available below.\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1, 1, 1, 3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"multiLocationPrice\",[\"loc\",[null,[6,94],[6,116]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 10,\n            \"column\": 7\n          }\n        },\n        \"moduleName\": \"garaje/templates/new-location/-upgrade.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(1);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        dom.insertBoundary(fragment, null);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"isUpgradeRequired\",[\"loc\",[null,[1,6],[1,23]]]]],[],0,null,[\"loc\",[null,[1,0],[10,7]]]]\n      ],\n      locals: [],\n      templates: [child0]\n    };\n  }()));\n\n});","define('garaje/templates/new-location', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 43,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 56,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/new-location.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"hr\");\n          dom.setAttribute(el1,\"class\",\"mt4\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h2\");\n          dom.setAttribute(el1,\"class\",\"my3\");\n          var el2 = dom.createTextNode(\"Order Confirmation\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,5,5,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"plan-ledger\",[],[\"coupon\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.coupon\",[\"loc\",[null,[47,15],[47,34]]]]],[],[]],\"locations\",[\"subexpr\",\"@mut\",[[\"get\",\"activeAndNewLocations\",[\"loc\",[null,[48,18],[48,39]]]]],[],[]],\"plan\",[\"subexpr\",\"@mut\",[[\"get\",\"currentPlan\",[\"loc\",[null,[49,13],[49,24]]]]],[],[]],\"period\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.period\",[\"loc\",[null,[50,15],[50,34]]]]],[],[]],\"periodStart\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.periodStart\",[\"loc\",[null,[51,20],[51,44]]]]],[],[]],\"periodEnd\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.periodEnd\",[\"loc\",[null,[52,18],[52,40]]]]],[],[]],\"creditBalance\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.creditBalance\",[\"loc\",[null,[53,22],[53,48]]]]],[],[]],\"newPlan\",[\"subexpr\",\"@mut\",[[\"get\",\"multiLocationPlan\",[\"loc\",[null,[54,16],[54,33]]]]],[],[]]],[\"loc\",[null,[46,6],[55,8]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 57,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 59,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/new-location.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"async-button\",[],[\"action\",\"triggerAddressValidations\",\"class\",\"btn btn--green mt3\",\"default\",\"Upgrade and Add Location\",\"pending\",\"Adding Location...\"],[\"loc\",[null,[58,6],[58,148]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 59,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 61,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/new-location.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"async-button\",[],[\"action\",\"triggerAddressValidations\",\"class\",\"btn btn--green mt3\",\"default\",\"Add Location\",\"pending\",\"Adding Location...\"],[\"loc\",[null,[60,6],[60,136]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 64,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/new-location.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el2,\"class\",\"row js-location\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        dom.setAttribute(el3,\"class\",\"mt4\");\n        var el4 = dom.createTextNode(\"Location Admin\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"h5 grayDark mb0\");\n        var el4 = dom.createTextNode(\"Set the login credentials for your location’s iPad and web dashboard. \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"href\",\"https://help.envoy.co/getting-started/personalize-account-settings/#location-admin\");\n        dom.setAttribute(el4,\"target\",\"_blank\");\n        dom.setAttribute(el4,\"class\",\"help\");\n        dom.setAttribute(el4,\"tabindex\",\"-1\");\n        var el5 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"h5 grayDark\");\n        var el4 = dom.createElement(\"b\");\n        var el5 = dom.createTextNode(\"Tip:\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" You’ll still need to populate the employee directory.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el2,\"class\",\"js-location\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        dom.setAttribute(el3,\"class\",\"mt4\");\n        var el4 = dom.createTextNode(\"Copy Location Settings\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        dom.setAttribute(el3,\"class\",\"h5 grayDark\");\n        var el4 = dom.createTextNode(\"Duplicate settings from an existing location.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col col-6\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"label\");\n        dom.setAttribute(el4,\"for\",\"_copyLocation\");\n        var el5 = dom.createTextNode(\"Location\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [7]);\n        var morphs = new Array(5);\n        morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3, 7]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element0, [5, 5]),3,3);\n        morphs[3] = dom.createMorphAt(element1,1,1);\n        morphs[4] = dom.createMorphAt(element1,2,2);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"location-info-w-map\",[],[\"model\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[4,10],[4,15]]]]],[],[]],\"callback\",[\"subexpr\",\"@mut\",[[\"get\",\"callback\",[\"loc\",[null,[5,13],[5,21]]]]],[],[]],\"shouldValidate\",[\"subexpr\",\"@mut\",[[\"get\",\"shouldValidate\",[\"loc\",[null,[6,19],[6,33]]]]],[],[]],\"title\",\"Create a New Location\",\"isEditingAddress\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditingAddress\",[\"loc\",[null,[8,21],[8,37]]]]],[],[]],\"isNewLocation\",true,\"persist\",\"save\"],[\"loc\",[null,[3,4],[11,6]]]],\n        [\"inline\",\"partial\",[\"admin\"],[],[\"loc\",[null,[20,6],[20,25]]]],\n        [\"inline\",\"x-select-blockless\",[],[\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"locations.persisted\",[\"loc\",[null,[31,14],[31,33]]]]],[],[]],\"optionValuePath\",\"content.id\",\"optionLabelPath\",\"content.nameWithCompanyName\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.masterLocationId\",[\"loc\",[null,[34,12],[34,34]]]]],[],[]],\"prompt\",\"None\",\"id\",\"_copyLocation\",\"class\",\"location-copyfrom\"],[\"loc\",[null,[30,6],[38,8]]]],\n        [\"block\",\"if\",[[\"get\",\"willChargeToAddOrActivateLocation\",[\"loc\",[null,[43,10],[43,43]]]]],[],0,null,[\"loc\",[null,[43,4],[56,11]]]],\n        [\"block\",\"if\",[[\"get\",\"isUpgradeRequired\",[\"loc\",[null,[57,10],[57,27]]]]],[],1,2,[\"loc\",[null,[57,4],[61,11]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/not-found', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 8,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/not-found.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"errorPage notFound\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"content\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"emptyImage empty-search\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        var el4 = dom.createTextNode(\"We couldn't find that page.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        dom.setAttribute(el3,\"class\",\"btn btn--small btn--white js-back\");\n        var el4 = dom.createTextNode(\"Go back\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1, 5]);\n        var morphs = new Array(1);\n        morphs[0] = dom.createElementMorph(element0);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"goBack\"],[],[\"loc\",[null,[5,7],[5,26]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/notifications', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": {\n            \"name\": \"triple-curlies\"\n          },\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 1,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 10,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/notifications.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"  \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mx-auto center mt4 js-emptyState\");\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"emptyImage empty-employees\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h2\");\n          dom.setAttribute(el2,\"class\",\"mt3\");\n          var el3 = dom.createTextNode(\"You need to add employees before configuring notifications.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"p\");\n          dom.setAttribute(el2,\"class\",\"h4 grayDark m1\");\n          var el3 = dom.createTextNode(\"You can import them from your directory service or add them manually. Once you do, you can send alerts to mobile, Slack, and HipChat when their guest arrives.\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"a\");\n          dom.setAttribute(el2,\"class\",\"h4 block mt2\");\n          dom.setAttribute(el2,\"href\",\"https://help.envoy.co/getting-started/set-up-your-employee-directory/\");\n          dom.setAttribute(el2,\"target\",\"_blank\");\n          dom.setAttribute(el2,\"tabindex\",\"-1\");\n          var el3 = dom.createTextNode(\"Learn more about Employee Directory\");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n  \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),7,7);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Add Employees\",\"new-employee\"],[\"class\",\"btn btn--blue mt3\"],[\"loc\",[null,[6,4],[6,72]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 10,\n                \"column\": 0\n              },\n              \"end\": {\n                \"line\": 19,\n                \"column\": 0\n              }\n            },\n            \"moduleName\": \"garaje/templates/notifications.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"mx-auto center mt4 js-emptyState\");\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"emptyImage empty-notifications\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"h2\");\n            dom.setAttribute(el2,\"class\",\"mt3\");\n            var el3 = dom.createTextNode(\"Automatically notify employees when their visitors arrive.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"p\");\n            dom.setAttribute(el2,\"class\",\"h4 grayDark m1\");\n            var el3 = dom.createTextNode(\"Envoy can automatically send employees an email, SMS, Slack, or HipChat message when their visitor arrives.\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"a\");\n            dom.setAttribute(el2,\"href\",\"#\");\n            dom.setAttribute(el2,\"class\",\"btn btn--blue mt3\");\n            var el3 = dom.createTextNode(\"Enable host notifications\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"a\");\n            dom.setAttribute(el2,\"class\",\"h4 block mt2\");\n            dom.setAttribute(el2,\"href\",\"https://help.envoy.co/getting-started/set-notification-preferences/\");\n            dom.setAttribute(el2,\"target\",\"_blank\");\n            dom.setAttribute(el2,\"tabindex\",\"-1\");\n            var el3 = dom.createTextNode(\"Learn more about host notifications\");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n  \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1, 7]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element4);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"enable\"],[],[\"loc\",[null,[15,42],[15,61]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 65,\n                  \"column\": 8\n                },\n                \"end\": {\n                  \"line\": 68,\n                  \"column\": 8\n                }\n              },\n              \"moduleName\": \"garaje/templates/notifications.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"          \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"img\");\n              dom.setAttribute(el1,\"src\",\"assets/images/integrations/notifications-page-integrations.png\");\n              dom.setAttribute(el1,\"height\",\"16\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n          Add more notification methods in our integrations directory ›\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 19,\n                \"column\": 0\n              },\n              \"end\": {\n                \"line\": 72,\n                \"column\": 0\n              }\n            },\n            \"moduleName\": \"garaje/templates/notifications.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"  \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"container px2\");\n            var el2 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"form\");\n            var el3 = dom.createTextNode(\"\\n      \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"fieldset\");\n            var el4 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"h2\");\n            dom.setAttribute(el4,\"class\",\"mt4\");\n            var el5 = dom.createTextNode(\"Host Notification\");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"p\");\n            dom.setAttribute(el4,\"class\",\"h5 grayDark\");\n            var el5 = dom.createTextNode(\"When a visitor signs in, their employee host will be notified by the method(s) selected below. \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"a\");\n            dom.setAttribute(el5,\"href\",\"https://help.envoy.co/getting-started/set-notification-preferences/\");\n            dom.setAttribute(el5,\"target\",\"_blank\");\n            dom.setAttribute(el5,\"class\",\"help\");\n            dom.setAttribute(el5,\"tabindex\",\"-1\");\n            var el6 = dom.createTextNode(\"Learn more\");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"div\");\n            dom.setAttribute(el4,\"class\",\"border rounded p2 mt3 flex flex-center\");\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"div\");\n            dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"img\");\n            dom.setAttribute(el6,\"src\",\"assets/images/features/apns.png\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"div\");\n            dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"h4\");\n            var el7 = dom.createTextNode(\"Push notification\");\n            dom.appendChild(el6, el7);\n            var el7 = dom.createElement(\"span\");\n            dom.setAttribute(el7,\"class\",\"premiumFeature\");\n            var el8 = dom.createTextNode(\"New!\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"p\");\n            dom.setAttribute(el6,\"class\",\"m0\");\n            var el7 = dom.createTextNode(\"Send employees an iPhone push notification when their visitor arrives. Requires \");\n            dom.appendChild(el6, el7);\n            var el7 = dom.createElement(\"a\");\n            dom.setAttribute(el7,\"href\",\"https://envoy.co/iphone\");\n            var el8 = dom.createTextNode(\"Envoy for iPhone\");\n            dom.appendChild(el7, el8);\n            dom.appendChild(el6, el7);\n            var el7 = dom.createTextNode(\".\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"div\");\n            dom.setAttribute(el5,\"class\",\"icon-checkmark\");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"div\");\n            dom.setAttribute(el4,\"class\",\"border rounded p2 mt3 flex flex-center\");\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"div\");\n            dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"img\");\n            dom.setAttribute(el6,\"src\",\"assets/images/features/email.png\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"div\");\n            dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"h4\");\n            var el7 = dom.createTextNode(\"Email notification\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"p\");\n            dom.setAttribute(el6,\"class\",\"m0\");\n            var el7 = dom.createTextNode(\"Send employees an email when their visitor arrives.\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"label\");\n            dom.setAttribute(el5,\"class\",\"toggle\");\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createComment(\"\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"span\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n        \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createElement(\"div\");\n            dom.setAttribute(el4,\"class\",\"border rounded p2 mt3 flex flex-center\");\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"div\");\n            dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"img\");\n            dom.setAttribute(el6,\"src\",\"assets/images/features/sms.png\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"div\");\n            dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"h4\");\n            var el7 = dom.createTextNode(\"SMS notification\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"p\");\n            dom.setAttribute(el6,\"class\",\"m0\");\n            var el7 = dom.createTextNode(\"Send employees an SMS when their visitor arrives.\");\n            dom.appendChild(el6, el7);\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el4, el5);\n            var el5 = dom.createElement(\"label\");\n            dom.setAttribute(el5,\"class\",\"toggle\");\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createComment(\"\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createElement(\"span\");\n            dom.appendChild(el5, el6);\n            var el6 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el5, el6);\n            dom.appendChild(el4, el5);\n            var el5 = dom.createTextNode(\"\\n        \");\n            dom.appendChild(el4, el5);\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n\\n\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"      \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n    \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n  \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element3 = dom.childAt(fragment, [1, 1, 1]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(dom.childAt(element3, [7, 5]),1,1);\n            morphs[1] = dom.createMorphAt(dom.childAt(element3, [9, 5]),1,1);\n            morphs[2] = dom.createMorphAt(element3,11,11);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-email-notification\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"emailNotificationEnabled\",[\"loc\",[null,[46,74],[46,98]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[46,108],[46,116]]]]],[],[]]],[\"loc\",[null,[46,12],[46,118]]]],\n            [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-sms-notification\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"smsNotificationEnabled\",[\"loc\",[null,[60,72],[60,94]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[60,104],[60,112]]]]],[],[]]],[\"loc\",[null,[60,12],[60,114]]]],\n            [\"block\",\"link-to\",[\"settings.integrations\"],[\"class\",\"h5 mt2 block\"],0,null,[\"loc\",[null,[65,8],[68,20]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 10,\n              \"column\": 0\n            },\n            \"end\": {\n              \"line\": 72,\n              \"column\": 0\n            }\n          },\n          \"moduleName\": \"garaje/templates/notifications.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"hasNoNotifications\",[\"loc\",[null,[10,10],[10,28]]]]],[],0,1,[\"loc\",[null,[10,0],[72,0]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 91,\n                  \"column\": 16\n                },\n                \"end\": {\n                  \"line\": 93,\n                  \"column\": 16\n                }\n              },\n              \"moduleName\": \"garaje/templates/notifications.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                  \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n              return morphs;\n            },\n            statements: [\n              [\"inline\",\"async-button\",[],[\"action\",\"saveWatchlist\",\"class\",\"js-watchlist-save btn btn--small btn--green\",\"default\",\"Save\",\"pending\",\"Saving...\"],[\"loc\",[null,[92,18],[92,144]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 93,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 95,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/templates/notifications.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createElement(\"a\");\n                dom.setAttribute(el1,\"href\",\"#\");\n                dom.setAttribute(el1,\"class\",\"js-watchlist-edit btn btn--small btn--blue\");\n                var el2 = dom.createTextNode(\"Edit\");\n                dom.appendChild(el1, el2);\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var element1 = dom.childAt(fragment, [1]);\n                var morphs = new Array(1);\n                morphs[0] = dom.createElementMorph(element1);\n                return morphs;\n              },\n              statements: [\n                [\"element\",\"action\",[\"editWatchlist\"],[],[\"loc\",[null,[94,81],[94,107]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 95,\n                    \"column\": 16\n                  },\n                  \"end\": {\n                    \"line\": 97,\n                    \"column\": 16\n                  }\n                },\n                \"moduleName\": \"garaje/templates/notifications.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                  \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n                \");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"async-button\",[],[\"action\",\"editWatchlist\",\"class\",\"btn btn--small btn--blue js-watchlist-enable\",\"default\",\"Enable\",\"pending\",\"Enabling...\"],[\"loc\",[null,[96,18],[96,149]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 93,\n                  \"column\": 16\n                },\n                \"end\": {\n                  \"line\": 97,\n                  \"column\": 16\n                }\n              },\n              \"moduleName\": \"garaje/templates/notifications.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"isWatchlistEditableAndFulfilled\",[\"loc\",[null,[93,26],[93,57]]]]],[],0,1,[\"loc\",[null,[93,16],[97,16]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 90,\n                \"column\": 14\n              },\n              \"end\": {\n                \"line\": 98,\n                \"column\": 14\n              }\n            },\n            \"moduleName\": \"garaje/templates/notifications.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[91,22],[91,32]]]]],[],0,1,[\"loc\",[null,[91,16],[97,23]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 101,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 135,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/notifications.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"tokenized-form mt3 clearfix\");\n            var el2 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createElement(\"div\");\n            dom.setAttribute(el2,\"class\",\"col-9\");\n            var el3 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"label\");\n            var el4 = dom.createTextNode(\"Watched Emails, Names, Companies, and Phone Numbers (one per line)\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createComment(\"\");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n                  \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"h4\");\n            var el4 = dom.createTextNode(\"Watchlist contact\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"p\");\n            var el4 = dom.createTextNode(\"Assign an email address and phone number to receive an email and SMS notifications when a visitor from the watchlist signs in or is pre-registered.\");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n                  \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"col col-6\");\n            var el4 = dom.createTextNode(\"\\n                    \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n\\n                  \");\n            dom.appendChild(el2, el3);\n            var el3 = dom.createElement(\"div\");\n            dom.setAttribute(el3,\"class\",\"col col-6 pl2\");\n            var el4 = dom.createTextNode(\"\\n                    \");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createComment(\"\");\n            dom.appendChild(el3, el4);\n            var el4 = dom.createTextNode(\"\\n                  \");\n            dom.appendChild(el3, el4);\n            dom.appendChild(el2, el3);\n            var el3 = dom.createTextNode(\"\\n                \");\n            dom.appendChild(el2, el3);\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n              \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1, 1]);\n            var morphs = new Array(3);\n            morphs[0] = dom.createMorphAt(element0,3,3);\n            morphs[1] = dom.createMorphAt(dom.childAt(element0, [9]),1,1);\n            morphs[2] = dom.createMorphAt(dom.childAt(element0, [11]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"textarea\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"watchlistContent\",[\"loc\",[null,[105,35],[105,51]]]]],[],[]],\"classNames\",\"js-watchlist-textarea\"],[\"loc\",[null,[105,18],[105,88]]]],\n            [\"inline\",\"email-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"watchlistNotifyEmail\",[\"loc\",[null,[112,26],[112,46]]]]],[],[]],\"label\",\"Email\",\"inputClass\",\"js-watchlist-email\",\"autocomplete\",\"off\",\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.watchlistNotifyEmail\",[\"loc\",[null,[116,30],[116,57]]]]],[],[]],\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[117,30],[117,39]]]]],[],[]],\"errorLabel\",\"Please Format Email Correctly\"],[\"loc\",[null,[111,20],[119,22]]]],\n            [\"inline\",\"phone-input\",[],[\"inputClass\",\"js-watchlist-phone-number\",\"phoneNumber\",[\"subexpr\",\"@mut\",[[\"get\",\"watchlistNotifyPhoneNumber\",[\"loc\",[null,[125,32],[125,58]]]]],[],[]],\"label\",\"Phone Number\",\"autocomplete\",\"off\",\"validated\",[\"subexpr\",\"@mut\",[[\"get\",\"validated\",[\"loc\",[null,[128,30],[128,39]]]]],[],[]],\"hasErrors\",[\"subexpr\",\"@mut\",[[\"get\",\"errors.watchlistNotifyPhoneNumber\",[\"loc\",[null,[129,30],[129,63]]]]],[],[]],\"defaultCountry\",[\"subexpr\",\"@mut\",[[\"get\",\"defaultCountry\",[\"loc\",[null,[130,35],[130,49]]]]],[],[]]],[\"loc\",[null,[123,20],[131,22]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 80,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 137,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/notifications.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"border rounded p2 mt3 js-watchlist\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center\");\n          var el3 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"style\",\"width:50px;height:50px\");\n          var el4 = dom.createTextNode(\"\\n                \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"img\");\n          dom.setAttribute(el4,\"src\",\"assets/images/features/watchlist.png\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"flex-auto px2\");\n          var el4 = dom.createTextNode(\"\\n                \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"h4\");\n          var el5 = dom.createTextNode(\"Watchlist\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n                \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"p\");\n          dom.setAttribute(el4,\"class\",\"m0\");\n          var el5 = dom.createTextNode(\"Send watchlist alerts to your team when specific visitors sign in or are pre-registered. \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"a\");\n          dom.setAttribute(el5,\"href\",\"https://help.envoy.co/host-notifications/enable-watchlist-notifications/\");\n          dom.setAttribute(el5,\"target\",\"_blank\");\n          dom.setAttribute(el5,\"class\",\"help\");\n          dom.setAttribute(el5,\"tabindex\",\"-1\");\n          var el6 = dom.createTextNode(\"Learn more\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"            \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element2, [1]),5,5);\n          morphs[1] = dom.createMorphAt(element2,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"tokenized-button\",[],[\"parent\",[\"subexpr\",\"@mut\",[[\"get\",\"box\",[\"loc\",[null,[90,41],[90,44]]]]],[],[]]],0,null,[\"loc\",[null,[90,14],[98,35]]]],\n          [\"block\",\"liquid-if\",[[\"get\",\"box.isOpen\",[\"loc\",[null,[101,25],[101,35]]]]],[\"class\",\"js-tokenized\"],1,null,[\"loc\",[null,[101,12],[135,26]]]]\n        ],\n        locals: [\"box\"],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\",\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 140,\n            \"column\": 8\n          }\n        },\n        \"moduleName\": \"garaje/templates/notifications.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Watchlist Notification\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"      \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element5 = dom.childAt(fragment, [2, 1]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        morphs[1] = dom.createElementMorph(element5);\n        morphs[2] = dom.createMorphAt(dom.childAt(element5, [1]),3,3);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"hasNoEmployees\",[\"loc\",[null,[1,6],[1,20]]]]],[],0,1,[\"loc\",[null,[1,0],[72,7]]]],\n        [\"element\",\"action\",[\"saveWatchlist\"],[\"on\",\"submit\"],[\"loc\",[null,[75,10],[75,48]]]],\n        [\"block\",\"tokenized-box\",[],[\"isOpen\",[\"subexpr\",\"@mut\",[[\"get\",\"isEditingWatchlist\",[\"loc\",[null,[80,32],[80,50]]]]],[],[]],\"isDirty\",[\"subexpr\",\"@mut\",[[\"get\",\"isDirty\",[\"loc\",[null,[80,59],[80,66]]]]],[],[]],\"rollback\",\"rollbackWatchlist\"],2,null,[\"loc\",[null,[80,8],[137,26]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/plans/-plan', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 5,\n              \"column\": 56\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans/-plan.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"per location\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 62\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans/-plan.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"or $\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" monthly\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"plan.monthlyPrice\",[\"loc\",[null,[7,33],[7,54]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 7,\n              \"column\": 62\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 74\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans/-plan.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createElement(\"br\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 15,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/plans/-plan.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pricingPlan-header\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"pricingPlan-price\");\n        var el3 = dom.createTextNode(\"$\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"pricingPlan-priceMonth\");\n        var el4 = dom.createTextNode(\"/mo\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"pricingPlan-details\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    billed annually\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"br\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var element1 = dom.childAt(element0, [5]);\n        var morphs = new Array(5);\n        morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),0,0);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n        morphs[2] = dom.createMorphAt(element1,1,1);\n        morphs[3] = dom.createMorphAt(element1,5,5);\n        morphs[4] = dom.createMorphAt(element0,7,7);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"plan.name\",[\"loc\",[null,[2,6],[2,19]]]],\n        [\"content\",\"plan.yearlyPrice\",[\"loc\",[null,[3,34],[3,54]]]],\n        [\"block\",\"unless\",[[\"get\",\"plan.isMultiLocationDisabled\",[\"loc\",[null,[5,14],[5,42]]]]],[],0,null,[\"loc\",[null,[5,4],[5,67]]]],\n        [\"block\",\"if\",[[\"get\",\"plan.monthlyPrice\",[\"loc\",[null,[7,10],[7,27]]]]],[],1,2,[\"loc\",[null,[7,4],[7,81]]]],\n        [\"inline\",\"plan-button\",[],[\"plan\",[\"subexpr\",\"@mut\",[[\"get\",\"plan\",[\"loc\",[null,[10,9],[10,13]]]]],[],[]],\"currentPlan\",[\"subexpr\",\"@mut\",[[\"get\",\"currentPlan\",[\"loc\",[null,[11,16],[11,27]]]]],[],[]],\"numberOfActiveLocations\",[\"subexpr\",\"@mut\",[[\"get\",\"numberOfActiveLocations\",[\"loc\",[null,[12,28],[12,51]]]]],[],[]],\"action\",\"selectPlan\"],[\"loc\",[null,[9,2],[14,4]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/plans-under-free', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 6,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans-under-free.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"plans/plan\"],[],[\"loc\",[null,[5,6],[5,30]]]]\n        ],\n        locals: [\"plan\"],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 65,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 67,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans-under-free.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"plans/plan\"],[],[\"loc\",[null,[66,6],[66,30]]]]\n        ],\n        locals: [\"plan\"],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 126,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 128,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans-under-free.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"plans/plan\"],[],[\"loc\",[null,[127,6],[127,30]]]]\n        ],\n        locals: [\"plan\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 159,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/plans-under-free.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pricingPlans container px2\");\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-4 pricingPlan js-free\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"ul\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h5\");\n        var el5 = dom.createTextNode(\" \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Sign in unlimited visitors\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Welcome one or hundreds of visitors per day.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Customize visitor sign-in forms\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Collect visitor data with input fields and dropdowns.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Manage legal agreements\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Visitors sign NDAs, waivers, etc right on the iPad.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Notify hosts\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Envoy will send an SMS or email to your host when their visitor arrives\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Capture visitor photos\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Enhance security with photos of each visitor.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Print visitor badges\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Automatically print self-adhesive badges.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Access & export data\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Use the powerful web dashboard to track it all.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Integrate with popular tools\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Envoy plays well with Slack, Hipchat, Box, and more.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Centralized Management\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Manage account and billing details for multiple locations.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Pre-register visitors\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Send arrival details to guests and alert reception of their visit. \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Inform security\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Share a simple, live list of expected visitors with security.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Create custom badges\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Try our \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"https://envoy.co/custom-badges\");\n        dom.setAttribute(el6,\"target\",\"_blank\");\n        dom.setAttribute(el6,\"tabindex\",\"-1\");\n        var el7 = dom.createTextNode(\"Custom Full-Color Badges\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\" for a totally custom visitor experience.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Integrate with Eventbrite\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Sync Eventbrite lists with Envoy for easy event management.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-4 pricingPlan pricingPlan--featured js-premium\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"ul\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h5\");\n        var el5 = dom.createTextNode(\"Everything from \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Basic\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\" plus\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Sign in unlimited visitors\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Welcome one or hundreds of visitors per day.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Customize visitor sign-in forms\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Collect visitor data with input fields and dropdowns.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Manage legal agreements\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Visitors sign NDAs, waivers, etc right on the iPad.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Notify hosts\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Envoy will send an SMS or email to your host when their visitor arrives\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Capture visitor photos\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Enhance security with photos of each visitor.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Print visitor badges\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Automatically print self-adhesive badges.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Access & export data\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Use the powerful web dashboard to track it all.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Integrate with popular tools\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Envoy plays well with Slack, Hipchat, Box, and more.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Centralized Management\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Manage account and billing details for multiple locations.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Pre-register visitors\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Send arrival details to guests and alert reception of their visit. \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Inform security\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Share a simple, live list of expected visitors with security.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Create custom badges\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Try our \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"https://envoy.co/custom-badges\");\n        dom.setAttribute(el6,\"target\",\"_blank\");\n        dom.setAttribute(el6,\"tabindex\",\"-1\");\n        var el7 = dom.createTextNode(\"Custom Full-Color Badges\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\" for a totally custom visitor experience.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Integrate with Eventbrite\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Sync Eventbrite lists with Envoy for easy event management.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-4 pricingPlan js-enterprise\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"ul\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h5\");\n        var el5 = dom.createTextNode(\"Everything from \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Premium\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\" plus\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Service Level Agreement\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"We’ll work together on a SLA that’s right for you.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Free Envoy in a Box\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Get an iPad, stand, printer, and badges. All included! \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Full concierge\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Let us set up your logos, forms, employees and more.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Dedicated priority support\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"We’re on call to help you anytime!\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"On-site or video training\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"We’ll be right there to get up and running.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Compliance support\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Envoy can facilitate audits and provide HIPAA and HITECH accounts.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element0, [5]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"with\",[[\"get\",\"freePlan\",[\"loc\",[null,[4,12],[4,20]]]]],[],0,null,[\"loc\",[null,[4,4],[6,13]]]],\n        [\"block\",\"with\",[[\"get\",\"premiumPlan\",[\"loc\",[null,[65,12],[65,23]]]]],[],1,null,[\"loc\",[null,[65,4],[67,13]]]],\n        [\"block\",\"with\",[[\"get\",\"enterprisePlan\",[\"loc\",[null,[126,12],[126,26]]]]],[],2,null,[\"loc\",[null,[126,4],[128,13]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/plans', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 6,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"plans/plan\"],[],[\"loc\",[null,[5,6],[5,30]]]]\n        ],\n        locals: [\"plan\"],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 45,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 47,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"plans/plan\"],[],[\"loc\",[null,[46,6],[46,30]]]]\n        ],\n        locals: [\"plan\"],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 78,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 80,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/plans.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"partial\",[\"plans/plan\"],[],[\"loc\",[null,[79,6],[79,30]]]]\n        ],\n        locals: [\"plan\"],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 111,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/plans.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"pricingPlans container px2\");\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-4 pricingPlan js-standard\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"ul\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h5\");\n        var el5 = dom.createTextNode(\" \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Sign in unlimited visitors\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Welcome one or hundreds of visitors per day.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Customize visitor sign-in forms\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Collect visitor data with input fields and dropdowns.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Manage legal agreements\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Visitors sign NDAs, waivers, etc right on the iPad.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Notify hosts\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Envoy will send an SMS or email to your host when their visitor arrives\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Capture visitor photos\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Enhance security with photos of each visitor.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Print visitor badges\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Automatically print self-adhesive badges.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Access & export data\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Use the powerful web dashboard to track it all.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Integrate with popular tools\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Envoy plays well with Slack, Hipchat, Box, and more.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-4 pricingPlan pricingPlan--featured js-premium\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"ul\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h5\");\n        var el5 = dom.createTextNode(\"Everything from \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Standard\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\" plus\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Centralized Management\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Manage account and billing details for multiple locations.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Pre-register visitors\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Send arrival details to guests and alert reception of their visit. \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Inform security\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Share a simple, live list of expected visitors with security.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Create custom badges\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Try our \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"https://envoy.co/custom-badges\");\n        dom.setAttribute(el6,\"target\",\"_blank\");\n        dom.setAttribute(el6,\"tabindex\",\"-1\");\n        var el7 = dom.createTextNode(\"Custom Full-Color Badges\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\" for a totally custom visitor experience.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Integrate with Eventbrite\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Sync Eventbrite lists with Envoy for easy event management.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\" \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\" \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"br\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\" \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"col col-4 pricingPlan js-enterprise\");\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"ul\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h5\");\n        var el5 = dom.createTextNode(\"Everything from \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"strong\");\n        var el6 = dom.createTextNode(\"Premium\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\" plus\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Service Level Agreement\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"We’ll work together on a SLA that’s right for you.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Free Envoy in a Box\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Get an iPad, stand, printer, and badges. All included! \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Full concierge\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Let us set up your logos, forms, employees and more.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Dedicated priority support\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"We’re on call to help you anytime!\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"On-site or video training\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"We’ll be right there to get up and running.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"li\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h4\");\n        var el6 = dom.createTextNode(\"Compliance support\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"p\");\n        var el6 = dom.createTextNode(\"Envoy can facilitate audits and provide HIPAA and HITECH accounts.\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(3);\n        morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element0, [5]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"with\",[[\"get\",\"standardPlan\",[\"loc\",[null,[4,12],[4,24]]]]],[],0,null,[\"loc\",[null,[4,4],[6,13]]]],\n        [\"block\",\"with\",[[\"get\",\"premiumPlan\",[\"loc\",[null,[45,12],[45,23]]]]],[],1,null,[\"loc\",[null,[45,4],[47,13]]]],\n        [\"block\",\"with\",[[\"get\",\"enterprisePlan\",[\"loc\",[null,[78,12],[78,26]]]]],[],2,null,[\"loc\",[null,[78,4],[80,13]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/pre-registered', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 45\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 87\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"Hide Calendar\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 87\n            },\n            \"end\": {\n              \"line\": 4,\n              \"column\": 108\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"Show Calendar\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 17,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 19,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            Pre-registrations matching \\\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"query\",[\"loc\",[null,[18,40],[18,49]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 19,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 21,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"            Pre-registered\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child4 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 30,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 42,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"py2 px1 border-bottom flex flex-center js-invite-day-bar\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"js-formatted-chosen-date h5 flex-auto\");\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"strong\");\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\" \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\" \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"a\");\n          dom.setAttribute(el3,\"class\",\"btn btn--smaller btn--squareAdd ml1 inline-block\");\n          dom.setAttribute(el3,\"target\",\"_blank\");\n          var el4 = dom.createTextNode(\"New pre-registration\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"flex-none right-align\");\n          var el3 = dom.createElement(\"strong\");\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"class\",\"btn btn--squareAdd js-dashboard-go-back-a-day\");\n          var el5 = dom.createTextNode(\"‹\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"class\",\"btn btn--squareAdd js-dashboard-today\");\n          var el5 = dom.createTextNode(\"Today\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"a\");\n          dom.setAttribute(el4,\"class\",\"btn btn--squareAdd js-dashboard-go-forward-a-day\");\n          var el5 = dom.createTextNode(\"›\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element7 = dom.childAt(fragment, [1]);\n          var element8 = dom.childAt(element7, [1]);\n          var element9 = dom.childAt(element8, [5]);\n          var element10 = dom.childAt(element7, [3, 0]);\n          var element11 = dom.childAt(element10, [1]);\n          var element12 = dom.childAt(element10, [3]);\n          var element13 = dom.childAt(element10, [5]);\n          var morphs = new Array(6);\n          morphs[0] = dom.createMorphAt(dom.childAt(element8, [1]),0,0);\n          morphs[1] = dom.createMorphAt(element8,3,3);\n          morphs[2] = dom.createAttrMorph(element9, 'href');\n          morphs[3] = dom.createElementMorph(element11);\n          morphs[4] = dom.createElementMorph(element12);\n          morphs[5] = dom.createElementMorph(element13);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"moment-format\",[[\"get\",\"date\",[\"loc\",[null,[33,34],[33,38]]]],\"dddd\"],[],[\"loc\",[null,[33,18],[33,47]]]],\n          [\"inline\",\"moment-format\",[[\"get\",\"date\",[\"loc\",[null,[33,74],[33,78]]]],\"MMMM Do, YYYY\"],[],[\"loc\",[null,[33,58],[33,96]]]],\n          [\"attribute\",\"href\",[\"get\",\"currentLocation.preRegistrationLink\",[\"loc\",[null,[34,20],[34,55]]]]],\n          [\"element\",\"action\",[\"goBack\"],[],[\"loc\",[null,[37,13],[37,32]]]],\n          [\"element\",\"action\",[\"chooseToday\"],[],[\"loc\",[null,[38,13],[38,37]]]],\n          [\"element\",\"action\",[\"goForward\"],[],[\"loc\",[null,[39,13],[39,35]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child5 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 48,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 50,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"px2 cursor-pointer h6 uppercase blue bold js-deselect-all-invites\");\n            var el2 = dom.createTextNode(\"Deselect all\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element5 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element5);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"deselectAllInvites\"],[],[\"loc\",[null,[49,16],[49,47]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 50,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 52,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"span\");\n            dom.setAttribute(el1,\"class\",\"px2 cursor-pointer h6 uppercase blue bold js-select-all-invites\");\n            var el2 = dom.createTextNode(\"Select all\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element4 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createElementMorph(element4);\n            return morphs;\n          },\n          statements: [\n            [\"element\",\"action\",[\"selectAllInvites\"],[],[\"loc\",[null,[51,16],[51,45]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 44,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 54,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"py2 px1 border-bottom flex flex-center\");\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.setAttribute(el2,\"class\",\"flex-auto\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"      \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element6 = dom.childAt(fragment, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(element6,3,3);\n          morphs[1] = dom.createMorphAt(element6,5,5);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"async-button\",[],[\"action\",\"printPreregisteredBadges\",\"classNames\",\"btn btn--smaller btn--blue js-preprint-badges-button\",\"default\",\"Pre-print selected\",\"pending\",\"Printing...\"],[\"loc\",[null,[47,8],[47,175]]]],\n          [\"block\",\"if\",[[\"get\",\"allInvitesAreSelected\",[\"loc\",[null,[48,14],[48,35]]]]],[],0,1,[\"loc\",[null,[48,8],[52,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    var child6 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 62,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 64,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"table-cell border-bottom bg-grayLightest p2 center lg-show-table-cell\");\n            var el2 = dom.createTextNode(\"Been here before?\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 67,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 69,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"table-cell border-bottom bg-grayLightest p2 center lg-show-table-cell\");\n            var el2 = dom.createTextNode(\"Pre-print badges\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 72,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 81,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"invite-feed-item\",[],[\"invite\",[\"subexpr\",\"@mut\",[[\"get\",\"invite\",[\"loc\",[null,[74,19],[74,25]]]]],[],[]],\"invitesSelectedToPrint\",[\"subexpr\",\"@mut\",[[\"get\",\"invitesSelectedToPrint\",[\"loc\",[null,[75,35],[75,57]]]]],[],[]],\"isSelectingPrint\",[\"subexpr\",\"@mut\",[[\"get\",\"isSelectingPrint\",[\"loc\",[null,[76,29],[76,45]]]]],[],[]],\"canPrintBadges\",[\"subexpr\",\"@mut\",[[\"get\",\"canPrintBadges\",[\"loc\",[null,[77,27],[77,41]]]]],[],[]],\"action\",\"redirectToEnvoy\",\"fullDate\",[\"subexpr\",\"@mut\",[[\"get\",\"showFullDate\",[\"loc\",[null,[79,21],[79,33]]]]],[],[]]],[\"loc\",[null,[73,12],[80,14]]]]\n          ],\n          locals: [\"invite\"],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 57,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 83,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"table h5\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"table-row grayDark\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"table-cell border-bottom bg-grayLightest p2\");\n          var el4 = dom.createTextNode(\"Visitor information\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"table-cell border-bottom bg-grayLightest p2\");\n          var el4 = dom.createTextNode(\"Note for receptionist\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"table-cell border-bottom bg-grayLightest p2 right-align\");\n          dom.setAttribute(el3,\"style\",\"min-width:100px\");\n          var el4 = dom.createTextNode(\"Due at\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"div\");\n          dom.setAttribute(el3,\"class\",\"table-cell border-bottom bg-grayLightest p2 right-align\");\n          dom.setAttribute(el3,\"style\",\"min-width:100px\");\n          var el4 = dom.createTextNode(\"Signed in\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createComment(\"\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element2 = dom.childAt(fragment, [1]);\n          var element3 = dom.childAt(element2, [1]);\n          var morphs = new Array(3);\n          morphs[0] = dom.createMorphAt(element3,5,5);\n          morphs[1] = dom.createMorphAt(element3,11,11);\n          morphs[2] = dom.createMorphAt(element2,3,3);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"currentLocation.config.beenHereBefore\",[\"loc\",[null,[62,18],[62,55]]]]],[],0,null,[\"loc\",[null,[62,12],[64,19]]]],\n          [\"block\",\"if\",[[\"get\",\"canPrintBadges\",[\"loc\",[null,[67,18],[67,32]]]]],[],1,null,[\"loc\",[null,[67,12],[69,19]]]],\n          [\"block\",\"each\",[[\"get\",\"sortedInvites\",[\"loc\",[null,[72,18],[72,31]]]]],[\"key\",\"@index\"],2,null,[\"loc\",[null,[72,10],[81,19]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2]\n      };\n    }());\n    var child7 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 87,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 89,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"              matching query.\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 90,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 92,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                yet today.\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        var child1 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 92,\n                  \"column\": 14\n                },\n                \"end\": {\n                  \"line\": 94,\n                  \"column\": 14\n                }\n              },\n              \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"                on this day.\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 89,\n                \"column\": 12\n              },\n              \"end\": {\n                \"line\": 95,\n                \"column\": 12\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"if\",[[\"get\",\"isToday\",[\"loc\",[null,[90,20],[90,27]]]]],[],0,1,[\"loc\",[null,[90,14],[94,21]]]]\n          ],\n          locals: [],\n          templates: [child0, child1]\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 83,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 98,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"mx-auto center mt4\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"h2\");\n          dom.setAttribute(el2,\"class\",\"mt3 fw-200 grayDark\");\n          var el3 = dom.createTextNode(\"No pre-registrations\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [1]);\n          var element1 = dom.childAt(element0, [1]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createAttrMorph(element1, 'class');\n          morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"class\",[\"concat\",[\"emptyImage \",[\"subexpr\",\"if\",[[\"get\",\"isToday\",[\"loc\",[null,[85,38],[85,45]]]],\"empty-sun\",\"empty-ghost\"],[],[\"loc\",[null,[85,33],[85,73]]]]]]],\n          [\"block\",\"if\",[[\"get\",\"query\",[\"loc\",[null,[87,18],[87,23]]]]],[],0,1,[\"loc\",[null,[87,12],[95,19]]]]\n        ],\n        locals: [],\n        templates: [child0, child1]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 104,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/pre-registered.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"md-flex\");\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"md-hide py2 mbn3 border-bottom bg-white center\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"icon icon-calendar\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\" \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"mt3 px2 flex-none\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"flex-auto\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"py3 px1 border-bottom clearfix flex flex-center\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"flex-auto\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"h2\");\n        dom.setAttribute(el5,\"class\",\"js-pre-registration-header\");\n        var el6 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"flex-auto right-align pl2\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"js-invites-container\");\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element14 = dom.childAt(fragment, [0]);\n        var element15 = dom.childAt(element14, [1]);\n        var element16 = dom.childAt(element14, [3, 1]);\n        var element17 = dom.childAt(element14, [5]);\n        var element18 = dom.childAt(element17, [1]);\n        var morphs = new Array(9);\n        morphs[0] = dom.createElementMorph(element15);\n        morphs[1] = dom.createMorphAt(element15,3,3);\n        morphs[2] = dom.createAttrMorph(element16, 'class');\n        morphs[3] = dom.createMorphAt(element16,1,1);\n        morphs[4] = dom.createMorphAt(dom.childAt(element18, [1, 1]),1,1);\n        morphs[5] = dom.createMorphAt(dom.childAt(element18, [3]),1,1);\n        morphs[6] = dom.createMorphAt(element17,3,3);\n        morphs[7] = dom.createMorphAt(element17,5,5);\n        morphs[8] = dom.createMorphAt(dom.childAt(element17, [7]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"element\",\"action\",[\"toggleCalendarVisible\"],[],[\"loc\",[null,[3,7],[3,41]]]],\n        [\"block\",\"if\",[[\"get\",\"mobileCalendarVisible\",[\"loc\",[null,[4,51],[4,72]]]]],[],0,1,[\"loc\",[null,[4,45],[4,115]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"js-calendar-container \",[\"subexpr\",\"if\",[[\"get\",\"mobileCalendarVisible\",[\"loc\",[null,[8,43],[8,64]]]],\"calendar-visible\"],[],[\"loc\",[null,[8,38],[8,85]]]]]]],\n        [\"inline\",\"envoy-calendar\",[],[\"date\",[\"subexpr\",\"@mut\",[[\"get\",\"selectedDate\",[\"loc\",[null,[9,28],[9,40]]]]],[],[]],\"invites\",[\"subexpr\",\"@mut\",[[\"get\",\"datesWithInvites\",[\"loc\",[null,[9,49],[9,65]]]]],[],[]],\"query\",[\"subexpr\",\"@mut\",[[\"get\",\"query\",[\"loc\",[null,[9,72],[9,77]]]]],[],[]]],[\"loc\",[null,[9,6],[9,79]]]],\n        [\"block\",\"if\",[[\"get\",\"query\",[\"loc\",[null,[17,16],[17,21]]]]],[],2,3,[\"loc\",[null,[17,10],[21,17]]]],\n        [\"inline\",\"input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"query\",[\"loc\",[null,[26,22],[26,27]]]]],[],[]],\"class\",\"pageSearch rounded border p1 icon-search\",\"placeholder\",\"Search pre-registrations\",\"type\",\"search\"],[\"loc\",[null,[26,8],[26,131]]]],\n        [\"block\",\"unless\",[[\"get\",\"query\",[\"loc\",[null,[30,14],[30,19]]]]],[],4,null,[\"loc\",[null,[30,4],[42,15]]]],\n        [\"block\",\"if\",[[\"get\",\"isSelectingPrint\",[\"loc\",[null,[44,10],[44,26]]]]],[],5,null,[\"loc\",[null,[44,4],[54,11]]]],\n        [\"block\",\"if\",[[\"get\",\"sortedInvites\",[\"loc\",[null,[57,12],[57,25]]]]],[],6,7,[\"loc\",[null,[57,6],[98,13]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3, child4, child5, child6, child7]\n    };\n  }()));\n\n});","define('garaje/templates/pre-registration-upgrade', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 4,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 6,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registration-upgrade.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"js-span-pre-registration-label premiumFeature\");\n          var el2 = dom.createTextNode(\"Premium Feature\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 9,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 11,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registration-upgrade.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"async-button\",[],[\"action\",\"enablePreRegistration\",\"class\",\"btn btn--blue mt3 js-pre-registration-enable-button\",\"default\",\"Enable pre-registration\",\"pending\",\"Enabling...\"],[\"loc\",[null,[10,4],[10,167]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 11,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 13,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registration-upgrade.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"plan-button\",[],[\"plan\",[\"subexpr\",\"@mut\",[[\"get\",\"premiumPlan\",[\"loc\",[null,[12,23],[12,34]]]]],[],[]],\"currentPlan\",[\"subexpr\",\"@mut\",[[\"get\",\"currentPlan\",[\"loc\",[null,[12,47],[12,58]]]]],[],[]],\"action\",\"selectPlan\",\"buttonType\",\"btn--blue mt3 js-pre-registration-upgrade-button\",\"buttonText\",\"Upgrade to Premium\"],[\"loc\",[null,[12,4],[12,174]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 15,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/pre-registration-upgrade.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"mx-auto center mt4 col-8 js-emptyState\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"emptyImage empty-preregistration\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"mt3\");\n        var el3 = dom.createTextNode(\"Pre-register visitors for seamless sign-in.\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"p\");\n        dom.setAttribute(el2,\"class\",\"h4 grayDark m1\");\n        var el3 = dom.createTextNode(\"Save visitors time and hassle by sending them a calendar invitation, map, and arrival instructions—all in one simple email. Plus, their email address and host will auto-fill during sign-in.\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"a\");\n        dom.setAttribute(el2,\"class\",\"h4 block mt2\");\n        dom.setAttribute(el2,\"href\",\"https://help.envoy.co/getting-started/customize-visitor-pre-registration/\");\n        dom.setAttribute(el2,\"target\",\"_blank\");\n        dom.setAttribute(el2,\"tabindex\",\"-1\");\n        var el3 = dom.createTextNode(\"Learn more about pre-registration\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0]);\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n        morphs[1] = dom.createMorphAt(element0,7,7);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"subscription.premiumFeatureBadgeVisible\",[\"loc\",[null,[4,10],[4,49]]]]],[],0,null,[\"loc\",[null,[4,4],[6,11]]]],\n        [\"block\",\"if\",[[\"get\",\"subscription.canAccessPreRegistration\",[\"loc\",[null,[9,8],[9,45]]]]],[],1,2,[\"loc\",[null,[9,2],[13,9]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/pre-registration', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registration.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Premium Feature\",\"plans\"],[\"class\",\"premiumFeature js-h2-a-pre-registration-title\",\"tabindex\",\"-1\"],[\"loc\",[null,[6,10],[6,115]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 109,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 111,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registration.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"textarea\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"model.preRegistrationNotes\",[\"loc\",[null,[110,25],[110,51]]]]],[],[]],\"classNames\",\"preRegistrationNotes mt2 h5 p2\"],[\"loc\",[null,[110,8],[110,97]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      var child0 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 134,\n                \"column\": 18\n              },\n              \"end\": {\n                \"line\": 136,\n                \"column\": 18\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registration.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                    \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"content\",\"previewEmailObject.subject\",[\"loc\",[null,[135,20],[135,50]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child1 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 136,\n                \"column\": 18\n              },\n              \"end\": {\n                \"line\": 138,\n                \"column\": 18\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registration.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"                    Loading...\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child2 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 145,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 147,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registration.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"iframe\");\n            dom.setAttribute(el1,\"class\",\"preRegistrationHtml\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var element0 = dom.childAt(fragment, [1]);\n            var morphs = new Array(1);\n            morphs[0] = dom.createAttrMorph(element0, 'srcdoc');\n            return morphs;\n          },\n          statements: [\n            [\"attribute\",\"srcdoc\",[\"get\",\"previewEmailObject.body\",[\"loc\",[null,[146,55],[146,78]]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 147,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 151,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/pre-registration.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"div\");\n            dom.setAttribute(el1,\"class\",\"preRegistrationHtml relative\");\n            var el2 = dom.createTextNode(\"\\n            \");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createComment(\"\");\n            dom.appendChild(el1, el2);\n            var el2 = dom.createTextNode(\"\\n          \");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(dom.childAt(fragment, [1]),1,1);\n            return morphs;\n          },\n          statements: [\n            [\"inline\",\"partial\",[\"loading\"],[],[\"loc\",[null,[149,12],[149,33]]]]\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 111,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 152,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/pre-registration.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"preRegistrationHtmlHeader\");\n          var el2 = dom.createTextNode(\"\\n\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"macStopLights\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"red\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"yellow\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"green\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"table\");\n          dom.setAttribute(el2,\"class\",\"macMailHeader\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"tr\");\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          dom.setAttribute(el4,\"class\",\"leftSide\");\n          var el5 = dom.createTextNode(\"From:\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          var el5 = dom.createTextNode(\"Envoy \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"span\");\n          dom.setAttribute(el5,\"class\",\"address\");\n          var el6 = dom.createTextNode(\"<no-reply@envoy.co>\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"tr\");\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          dom.setAttribute(el4,\"class\",\"leftSide\");\n          var el5 = dom.createTextNode(\"To:\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          var el5 = dom.createComment(\"\");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\" \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"span\");\n          dom.setAttribute(el5,\"class\",\"address\");\n          var el6 = dom.createTextNode(\"<\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createTextNode(\">\");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"tr\");\n          dom.setAttribute(el3,\"class\",\"subject\");\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          dom.setAttribute(el4,\"class\",\"leftSide\");\n          var el5 = dom.createTextNode(\"Subject:\");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createElement(\"td\");\n          var el5 = dom.createTextNode(\"\\n                \");\n          dom.appendChild(el4, el5);\n          var el5 = dom.createElement(\"strong\");\n          dom.setAttribute(el5,\"class\",\"js-email-preview-subject\");\n          var el6 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createComment(\"\");\n          dom.appendChild(el5, el6);\n          var el6 = dom.createTextNode(\"                \");\n          dom.appendChild(el5, el6);\n          dom.appendChild(el4, el5);\n          var el5 = dom.createTextNode(\"\\n              \");\n          dom.appendChild(el4, el5);\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1]);\n          var element2 = dom.childAt(element1, [3]);\n          var element3 = dom.childAt(element2, [3, 3]);\n          var morphs = new Array(5);\n          morphs[0] = dom.createMorphAt(dom.childAt(element1, [1]),7,7);\n          morphs[1] = dom.createMorphAt(element3,0,0);\n          morphs[2] = dom.createMorphAt(dom.childAt(element3, [2]),1,1);\n          morphs[3] = dom.createMorphAt(dom.childAt(element2, [5, 3, 1]),1,1);\n          morphs[4] = dom.createMorphAt(fragment,3,3,contextualElement);\n          dom.insertBoundary(fragment, null);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"async-button\",[],[\"action\",\"sendTestEmail\",\"default\",\"Send Test\",\"pending\",\"Sending...\",\"tagName\",\"a\",\"class\",[\"subexpr\",\"concat\",[\"sendTestPreRegistrationEmail\",\" \",[\"subexpr\",\"if\",[[\"get\",\"testEmailSent\",[]],\"sent\"],[],[]],\" \"],[],[]]],[\"loc\",[null,[118,12],[118,173]]]],\n          [\"content\",\"currentLocation.admin.name\",[\"loc\",[null,[128,18],[128,48]]]],\n          [\"content\",\"currentLocation.admin.email\",[\"loc\",[null,[128,75],[128,106]]]],\n          [\"block\",\"if\",[[\"get\",\"previewEmailObject\",[\"loc\",[null,[134,24],[134,42]]]]],[],0,1,[\"loc\",[null,[134,18],[138,25]]]],\n          [\"block\",\"if\",[[\"get\",\"previewEmailObject\",[\"loc\",[null,[145,14],[145,32]]]]],[],2,3,[\"loc\",[null,[145,8],[151,15]]]]\n        ],\n        locals: [],\n        templates: [child0, child1, child2, child3]\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 193,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/pre-registration.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"form\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"fieldset\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Pre-registration\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 grayDark\");\n        var el5 = dom.createTextNode(\"Configure the settings that allow you to pre-register visitors. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/getting-started/customize-visitor-pre-registration/\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 flex mt3 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/prereg.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Visitor pre-registration\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0\");\n        var el7 = dom.createTextNode(\"Allow employees to pre-register visitors.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"label\");\n        dom.setAttribute(el5,\"class\",\"toggle\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 flex mt3 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/notify-reception.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Notify receptionist of all pre-registered visitors\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0\");\n        var el7 = dom.createTextNode(\"Send a notice to the \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\" for every pre-registration created.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"label\");\n        dom.setAttribute(el5,\"class\",\"toggle\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 flex mt3 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"style\",\"max-width:50px;max-height:50px\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/signature.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Attach agreement to pre-registration emails\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0\");\n        var el7 = dom.createTextNode(\"Send a copy of your NDA or waiver for visitors to review before they arrive.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"label\");\n        dom.setAttribute(el5,\"class\",\"toggle\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createComment(\"\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"span\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 flex mt3 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"style\",\"width:50px;height:50px\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/integrations/eventbrite.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto px2\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Eventbrite\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0\");\n        var el7 = dom.createTextNode(\"Import Eventbrite attendees as pre-registered visitors.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"#\");\n        dom.setAttribute(el5,\"class\",\"btn btn--small btn--blue\");\n        var el6 = dom.createTextNode(\"Import attendees\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4 mb3\");\n        var el5 = dom.createTextNode(\"Employee Invitation Link\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"clearfix\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"col col-4\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        var el7 = dom.createTextNode(\"This link to your pre-registration form can be shared directly with employees via email or embedded on your company portal/intranet for easy access.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        var el7 = dom.createElement(\"span\");\n        dom.setAttribute(el7,\"class\",\"icon-notice\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\" \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"strong\");\n        var el8 = dom.createTextNode(\"Keep this link internal: anyone with access can pre-register visitors for your location.\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"col col-8 pl4\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"js-pre-registration\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"a\");\n        dom.setAttribute(el7,\"class\",\"input disabled mb0\");\n        dom.setAttribute(el7,\"target\",\"_blank\");\n        dom.setAttribute(el7,\"tabindex\",\"-1\");\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"label\");\n        var el8 = dom.createElement(\"a\");\n        dom.setAttribute(el8,\"class\",\"right\");\n        dom.setAttribute(el8,\"style\",\"margin-top:-16px;\");\n        var el9 = dom.createTextNode(\"Regenerate\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"class\",\"mt4 mb3\");\n        var el5 = dom.createTextNode(\"Security Desk Link\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"clearfix\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"col col-4\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        var el7 = dom.createTextNode(\"This link generates a live list of today’s pre-registered visitors. For locations with a security desk prior to visitor sign-in, this allows you to easily share an up-to-date list of expected visitors.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        var el7 = dom.createElement(\"span\");\n        dom.setAttribute(el7,\"class\",\"icon-notice\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\" \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"strong\");\n        var el8 = dom.createTextNode(\"Keep this link internal: anyone with access can view your pre-registered visitors.\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"col col-8 pl4\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"js-security-desk\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"a\");\n        dom.setAttribute(el7,\"class\",\"input disabled mb0\");\n        dom.setAttribute(el7,\"target\",\"_blank\");\n        dom.setAttribute(el7,\"tabindex\",\"-1\");\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createComment(\"\");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"label\");\n        var el8 = dom.createElement(\"a\");\n        dom.setAttribute(el8,\"class\",\"right\");\n        dom.setAttribute(el8,\"style\",\"margin-top:-16px;\");\n        var el9 = dom.createTextNode(\"Regenerate\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        dom.setAttribute(el4,\"id\",\"js-invitation-email\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Invitation Email\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"h5 grayDark\");\n        var el5 = dom.createTextNode(\"Customize the email you can send to pre-registered visitors. \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"https://help.envoy.co/getting-started/customize-visitor-pre-registration/\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        dom.setAttribute(el5,\"class\",\"help\");\n        dom.setAttribute(el5,\"tabindex\",\"-1\");\n        var el6 = dom.createTextNode(\"Learn more\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        var el5 = dom.createTextNode(\"Emails contain a map and calendar invitation, and we recommend adding some handy notes such as: directions, parking tips, security requirements (like bringing a government issued ID), and your Wi-Fi login to help ensure your visitors arrive prepared.\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"segmentedControlToggle\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        var el6 = dom.createTextNode(\"Edit text\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        var el6 = dom.createTextNode(\"Preview email\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"mt4\");\n        var el5 = dom.createTextNode(\"Add formatting to your pre-registration email using Markdown. We’ve provided a quick cheat sheet below, or check out one of our favorite \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"a\");\n        dom.setAttribute(el5,\"href\",\"http://markdowntutorial.com/\");\n        dom.setAttribute(el5,\"target\",\"_blank\");\n        var el6 = dom.createTextNode(\"in-depth tutorials\");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\".\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"clearfix mt2 border-top border-bottom\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"table\");\n        dom.setAttribute(el5,\"class\",\"col col-6\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"tr\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createElement(\"strong\");\n        var el9 = dom.createTextNode(\"Header\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createTextNode(\"# Header 1\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"br\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"## Header 2\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"br\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"### Header 3\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"tr\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createElement(\"strong\");\n        var el9 = dom.createTextNode(\"Blockquote\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createTextNode(\"> Quoted text here\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"tr\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createElement(\"strong\");\n        var el9 = dom.createTextNode(\"Bulleted List\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createTextNode(\"* Item 1\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"br\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"* Item 2\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"br\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"* Item 3\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"tr\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createElement(\"strong\");\n        var el9 = dom.createTextNode(\"Numbered List\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createTextNode(\"1. Item 1\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"br\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"2. Item 2\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"br\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"3. Item 3\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"table\");\n        dom.setAttribute(el5,\"class\",\"col col-6\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"tr\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createElement(\"strong\");\n        var el9 = dom.createTextNode(\"Bold\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createTextNode(\"**Bold text**\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"tr\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createElement(\"strong\");\n        var el9 = dom.createTextNode(\"Italic\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createTextNode(\"*Italic text*\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"tr\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createElement(\"strong\");\n        var el9 = dom.createTextNode(\"Link\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createTextNode(\"[Link Title](http://link-url)\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"tr\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createElement(\"strong\");\n        var el9 = dom.createTextNode(\"Image\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"td\");\n        dom.setAttribute(el7,\"class\",\"py2\");\n        var el8 = dom.createTextNode(\"![image-name](http://image-url)\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element4 = dom.childAt(fragment, [0, 1, 1]);\n        var element5 = dom.childAt(element4, [7]);\n        var element6 = dom.childAt(element4, [11, 5]);\n        var element7 = dom.childAt(element4, [15, 3, 1]);\n        var element8 = dom.childAt(element7, [1]);\n        var element9 = dom.childAt(element7, [5, 0]);\n        var element10 = dom.childAt(element4, [19, 3, 1]);\n        var element11 = dom.childAt(element10, [1]);\n        var element12 = dom.childAt(element10, [5, 0]);\n        var element13 = dom.childAt(element4, [27]);\n        var element14 = dom.childAt(element13, [1]);\n        var element15 = dom.childAt(element13, [2]);\n        var morphs = new Array(20);\n        morphs[0] = dom.createMorphAt(dom.childAt(element4, [1]),1,1);\n        morphs[1] = dom.createMorphAt(dom.childAt(element4, [5, 5]),1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element5, [3, 3]),1,1);\n        morphs[3] = dom.createMorphAt(dom.childAt(element5, [5]),1,1);\n        morphs[4] = dom.createMorphAt(dom.childAt(element4, [9, 5]),1,1);\n        morphs[5] = dom.createElementMorph(element6);\n        morphs[6] = dom.createAttrMorph(element8, 'href');\n        morphs[7] = dom.createMorphAt(element8,0,0);\n        morphs[8] = dom.createMorphAt(element7,3,3);\n        morphs[9] = dom.createElementMorph(element9);\n        morphs[10] = dom.createAttrMorph(element11, 'href');\n        morphs[11] = dom.createMorphAt(element11,0,0);\n        morphs[12] = dom.createMorphAt(element10,3,3);\n        morphs[13] = dom.createElementMorph(element12);\n        morphs[14] = dom.createAttrMorph(element14, 'class');\n        morphs[15] = dom.createElementMorph(element14);\n        morphs[16] = dom.createAttrMorph(element15, 'class');\n        morphs[17] = dom.createElementMorph(element15);\n        morphs[18] = dom.createMorphAt(element4,29,29);\n        morphs[19] = dom.createMorphAt(element4,31,31);\n        return morphs;\n      },\n      statements: [\n        [\"block\",\"if\",[[\"get\",\"subscription.premiumFeatureBadgeVisible\",[\"loc\",[null,[5,14],[5,53]]]]],[],0,null,[\"loc\",[null,[5,8],[7,15]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-pre-registration\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"preRegistrationEnabled\",[\"loc\",[null,[20,70],[20,92]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isSaving\",[\"loc\",[null,[20,102],[20,116]]]]],[],[]]],[\"loc\",[null,[20,10],[20,118]]]],\n        [\"inline\",\"link-to\",[\"receptionist\",\"receptionist\"],[\"tabindex\",\"-1\"],[\"loc\",[null,[31,45],[31,100]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-notify-receptionist\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"ccReceptionistEnabled\",[\"loc\",[null,[34,73],[34,94]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"model.isSaving\",[\"loc\",[null,[34,104],[34,118]]]]],[],[]]],[\"loc\",[null,[34,10],[34,120]]]],\n        [\"inline\",\"input\",[],[\"type\",\"checkbox\",\"class\",\"js-pre-registration-nda\",\"checked\",[\"subexpr\",\"@mut\",[[\"get\",\"sendNdaInvite\",[\"loc\",[null,[48,74],[48,87]]]]],[],[]],\"disabled\",[\"subexpr\",\"@mut\",[[\"get\",\"isSaving\",[\"loc\",[null,[48,97],[48,105]]]]],[],[]]],[\"loc\",[null,[48,10],[48,107]]]],\n        [\"element\",\"action\",[\"redirectToEnvoy\",\"/account/edit/eventbrite\"],[],[\"loc\",[null,[62,53],[62,108]]]],\n        [\"attribute\",\"href\",[\"get\",\"model.preRegistrationLink\",[\"loc\",[null,[76,49],[76,74]]]]],\n        [\"content\",\"model.preRegistrationLink\",[\"loc\",[null,[76,107],[76,136]]]],\n        [\"inline\",\"inline-loading-spinner\",[],[\"promise\",[\"subexpr\",\"@mut\",[[\"get\",\"preRegistrationLinkCallback\",[\"loc\",[null,[77,45],[77,72]]]]],[],[]]],[\"loc\",[null,[77,12],[77,74]]]],\n        [\"element\",\"action\",[\"regeneratePreRegistrationLink\"],[],[\"loc\",[null,[78,22],[78,64]]]],\n        [\"attribute\",\"href\",[\"get\",\"model.securityDeskLink\",[\"loc\",[null,[94,49],[94,71]]]]],\n        [\"content\",\"model.securityDeskLink\",[\"loc\",[null,[94,104],[94,130]]]],\n        [\"inline\",\"inline-loading-spinner\",[],[\"promise\",[\"subexpr\",\"@mut\",[[\"get\",\"securityDeskLinkCallback\",[\"loc\",[null,[95,45],[95,69]]]]],[],[]]],[\"loc\",[null,[95,12],[95,71]]]],\n        [\"element\",\"action\",[\"regenerateSecurityDeskLink\"],[],[\"loc\",[null,[96,22],[96,61]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"segmentedControlLeft \",[\"subexpr\",\"if\",[[\"get\",\"editEmailVisible\",[\"loc\",[null,[106,78],[106,94]]]],\"selected\"],[],[\"loc\",[null,[106,73],[106,107]]]]]]],\n        [\"element\",\"action\",[\"setEmailEditActive\"],[],[\"loc\",[null,[106,13],[106,44]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"segmentedControlRight \",[\"subexpr\",\"unless\",[[\"get\",\"editEmailVisible\",[\"loc\",[null,[106,202],[106,218]]]],\"selected\"],[],[\"loc\",[null,[106,193],[106,231]]]]]]],\n        [\"element\",\"action\",[\"setEmailPreviewActive\"],[],[\"loc\",[null,[106,129],[106,163]]]],\n        [\"block\",\"if\",[[\"get\",\"editEmailVisible\",[\"loc\",[null,[109,12],[109,28]]]]],[],1,2,[\"loc\",[null,[109,6],[152,13]]]],\n        [\"inline\",\"async-button\",[],[\"action\",\"save\",\"class\",\"btn btn--medium btn--green\",\"default\",\"Save email text\",\"pending\",\"Saving...\"],[\"loc\",[null,[155,6],[155,117]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/printers', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": false,\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 223,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/printers.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"form\");\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el2,\"class\",\"row\");\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        var el5 = dom.createTextNode(\"Printers\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"ul\");\n        dom.setAttribute(el4,\"class\",\"small-block-grid-2 medium-block-grid-3 deviceList\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/printer/brother-ql720nw.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus good\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Spongebob\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Brother QL-720NW\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Serial #:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"L3Z844520\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Envoy 5G\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.23\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Status:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Ready\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/printer/brother-ql710w.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus warn\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Sandy\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Brother QL-710W\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Serial #:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"L3Z844520\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Envoy 5G\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.18\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Status:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"span\");\n        dom.setAttribute(el9,\"class\",\"updateAvailable\");\n        var el10 = dom.createTextNode(\"Low Paper\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/printer/brother-ql710w.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus bad\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Patrick\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Brother QL-710W\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Serial #:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"L3Z844520\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Disconnected\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Disconnected\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Status:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"span\");\n        dom.setAttribute(el9,\"class\",\"updateAvailable\");\n        var el10 = dom.createTextNode(\"Unreachable\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/printer/brother-ql720nw.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus bad\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Squidward\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Brother QL-720NW\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Serial #:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"L3Z844520\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"WiFi:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Envoy 5G\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.28\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Status:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"span\");\n        dom.setAttribute(el9,\"class\",\"updateAvailable\");\n        var el10 = dom.createTextNode(\"No Paper\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"li\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"/assets/images/printer/brother-ql720nw.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"table\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"h4\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceStatus good\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"span\");\n        dom.setAttribute(el8,\"class\",\"deviceName\");\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"input\");\n        dom.setAttribute(el9,\"id\",\"\");\n        dom.setAttribute(el9,\"name\",\"\");\n        dom.setAttribute(el9,\"type\",\"text\");\n        dom.setAttribute(el9,\"value\",\"Plankton\");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n                \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"label\");\n        dom.setAttribute(el9,\"for\",\"\");\n        var el10 = dom.createTextNode(\"Name\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Device:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Brother QL-720NW\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Serial #:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"L3Z844520\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Ethernet:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"Connected\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"IP:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.28\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"tr\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Status:\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\" \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"td\");\n        var el9 = dom.createTextNode(\"Ready\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        dom.setAttribute(el3,\"href\",\"#\");\n        dom.setAttribute(el3,\"class\",\"btn btn--small btn--blue\");\n        var el4 = dom.createTextNode(\"Add new Printer\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el2,\"class\",\"row\");\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h2\");\n        var el5 = dom.createTextNode(\"Printers\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"tokenized\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-icon\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/printer.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-data mobileFullWidth\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Printer Support\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        var el7 = dom.createTextNode(\"Print badges for your visitors when they sign in.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-btn\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"#\");\n        dom.setAttribute(el6,\"class\",\"btn btn--small btn--blue\");\n        var el7 = dom.createTextNode(\"Enable\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"tokenized\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-icon\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/printer.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-data mobileFullWidth\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Printer Support\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        var el7 = dom.createTextNode(\"Print badges for your visitors when they sign in.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-btn\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"#\");\n        dom.setAttribute(el6,\"class\",\"btn btn--small btn--green\");\n        var el7 = dom.createTextNode(\"Save\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"row\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"div\");\n        dom.setAttribute(el6,\"class\",\"tokenized-form\");\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"medium-9 columns\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"input\");\n        dom.setAttribute(el8,\"id\",\"\");\n        dom.setAttribute(el8,\"name\",\"\");\n        dom.setAttribute(el8,\"type\",\"text\");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"label\");\n        dom.setAttribute(el8,\"for\",\"\");\n        var el9 = dom.createTextNode(\"Printer IP Address\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"div\");\n        dom.setAttribute(el7,\"class\",\"medium-9 columns end\");\n        var el8 = dom.createTextNode(\"\\n              \");\n        dom.appendChild(el7, el8);\n        var el8 = dom.createElement(\"p\");\n        var el9 = dom.createTextNode(\"We support the Brother QL-710W and QL-720NW printers. To find the printer’s IP address, turn it on and hold the \\\"Cut\\\" button until it prints out a sheet of diagnostics – the IP address will be a series of numbers separated by periods (for example: \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"192.168.1.44\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\" or \");\n        dom.appendChild(el8, el9);\n        var el9 = dom.createElement(\"code\");\n        var el10 = dom.createTextNode(\"10.0.1.23\");\n        dom.appendChild(el9, el10);\n        dom.appendChild(el8, el9);\n        var el9 = dom.createTextNode(\"). Your printer must be on the same network as your device.\");\n        dom.appendChild(el8, el9);\n        dom.appendChild(el7, el8);\n        var el8 = dom.createTextNode(\"\\n            \");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"columns\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"tokenized\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-icon\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"img\");\n        dom.setAttribute(el6,\"src\",\"assets/images/features/printer.png\");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-data mobileFullWidth\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"h4\");\n        var el7 = dom.createTextNode(\"Printer Support\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        var el7 = dom.createTextNode(\"Print badges for your visitors when they sign in.\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"tokenized-btn\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"a\");\n        dom.setAttribute(el6,\"href\",\"#\");\n        dom.setAttribute(el6,\"class\",\"btn btn--small btn--outline\");\n        var el7 = dom.createTextNode(\"Disable\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/protected', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      var child0 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            var child0 = (function() {\n              var child0 = (function() {\n                return {\n                  meta: {\n                    \"fragmentReason\": false,\n                    \"revision\": \"Ember@2.2.0-beta.1\",\n                    \"loc\": {\n                      \"source\": null,\n                      \"start\": {\n                        \"line\": 7,\n                        \"column\": 12\n                      },\n                      \"end\": {\n                        \"line\": 13,\n                        \"column\": 12\n                      }\n                    },\n                    \"moduleName\": \"garaje/templates/protected.hbs\"\n                  },\n                  isEmpty: false,\n                  arity: 0,\n                  cachedFragment: null,\n                  hasRendered: false,\n                  buildFragment: function buildFragment(dom) {\n                    var el0 = dom.createDocumentFragment();\n                    var el1 = dom.createTextNode(\"                \");\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createComment(\"\");\n                    dom.appendChild(el0, el1);\n                    var el1 = dom.createTextNode(\"\\n\");\n                    dom.appendChild(el0, el1);\n                    return el0;\n                  },\n                  buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                    var morphs = new Array(1);\n                    morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                    return morphs;\n                  },\n                  statements: [\n                    [\"content\",\"location.nameWithCompanyName\",[\"loc\",[null,[12,16],[12,48]]]]\n                  ],\n                  locals: [],\n                  templates: []\n                };\n              }());\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 6,\n                      \"column\": 10\n                    },\n                    \"end\": {\n                      \"line\": 14,\n                      \"column\": 10\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/protected.hbs\"\n                },\n                isEmpty: false,\n                arity: 1,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createComment(\"\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                  var morphs = new Array(1);\n                  morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                  dom.insertBoundary(fragment, 0);\n                  dom.insertBoundary(fragment, null);\n                  return morphs;\n                },\n                statements: [\n                  [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[8,25],[8,35]]]]],[],[]],\"on-select\",[\"subexpr\",\"action\",[\"switchLocationFromMenu\"],[],[\"loc\",[null,[9,24],[9,57]]]],\"location\",[\"subexpr\",\"@mut\",[[\"get\",\"location\",[\"loc\",[null,[10,23],[10,31]]]]],[],[]]],0,null,[\"loc\",[null,[7,12],[13,29]]]]\n                ],\n                locals: [\"location\"],\n                templates: [child0]\n              };\n            }());\n            var child1 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 15,\n                      \"column\": 10\n                    },\n                    \"end\": {\n                      \"line\": 15,\n                      \"column\": 122\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/protected.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"Add a location\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes() { return []; },\n                statements: [\n\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 5,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 16,\n                    \"column\": 8\n                  }\n                },\n                \"moduleName\": \"garaje/templates/protected.hbs\"\n              },\n              isEmpty: false,\n              arity: 1,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"          \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(2);\n                morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n                morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n                dom.insertBoundary(fragment, 0);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"each\",[[\"get\",\"locations.persisted\",[\"loc\",[null,[6,18],[6,37]]]]],[],0,null,[\"loc\",[null,[6,10],[14,19]]]],\n                [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[15,37],[15,47]]]]],[],[]],\"class\",\"addLocation menu-icon bold\",\"on-select\",\"addLocation\"],1,null,[\"loc\",[null,[15,10],[15,139]]]]\n              ],\n              locals: [\"parentList\"],\n              templates: [child0, child1]\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 4,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 17,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/protected.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              dom.insertBoundary(fragment, null);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"ic-menu-list\",[],[\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"parentMenu\",[\"loc\",[null,[5,35],[5,45]]]]],[],[]]],0,null,[\"loc\",[null,[5,8],[16,25]]]]\n            ],\n            locals: [\"parentMenu\"],\n            templates: [child0]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 3,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 18,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"ic-menu\",[],[\"class\",\"location js-mainHeader-location\",\"manager\",[\"subexpr\",\"@mut\",[[\"get\",\"manager\",[\"loc\",[null,[4,65],[4,72]]]]],[],[]],\"menuName\",\"locationSwitcher\"],0,null,[\"loc\",[null,[4,6],[17,18]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child1 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            var child0 = (function() {\n              return {\n                meta: {\n                  \"fragmentReason\": false,\n                  \"revision\": \"Ember@2.2.0-beta.1\",\n                  \"loc\": {\n                    \"source\": null,\n                    \"start\": {\n                      \"line\": 22,\n                      \"column\": 10\n                    },\n                    \"end\": {\n                      \"line\": 22,\n                      \"column\": 98\n                    }\n                  },\n                  \"moduleName\": \"garaje/templates/protected.hbs\"\n                },\n                isEmpty: false,\n                arity: 0,\n                cachedFragment: null,\n                hasRendered: false,\n                buildFragment: function buildFragment(dom) {\n                  var el0 = dom.createDocumentFragment();\n                  var el1 = dom.createTextNode(\"Boss\");\n                  dom.appendChild(el0, el1);\n                  return el0;\n                },\n                buildRenderNodes: function buildRenderNodes() { return []; },\n                statements: [\n\n                ],\n                locals: [],\n                templates: []\n              };\n            }());\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 21,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 23,\n                    \"column\": 8\n                  }\n                },\n                \"moduleName\": \"garaje/templates/protected.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"          \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\"\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[22,37],[22,47]]]]],[],[]],\"class\",\"enterBoss menu-icon\",\"on-select\",\"boss\"],0,null,[\"loc\",[null,[22,10],[22,115]]]]\n              ],\n              locals: [],\n              templates: [child0]\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 24,\n                    \"column\": 8\n                  },\n                  \"end\": {\n                    \"line\": 24,\n                    \"column\": 98\n                  }\n                },\n                \"moduleName\": \"garaje/templates/protected.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"Log Out\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 20,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 25,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/protected.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(2);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              return morphs;\n            },\n            statements: [\n              [\"block\",\"if\",[[\"get\",\"subscription.canAccessBoss\",[\"loc\",[null,[21,14],[21,40]]]]],[],0,null,[\"loc\",[null,[21,8],[23,15]]]],\n              [\"block\",\"ic-menu-item\",[],[\"parentList\",[\"subexpr\",\"@mut\",[[\"get\",\"parentList\",[\"loc\",[null,[24,35],[24,45]]]]],[],[]],\"class\",\"logOut menu-icon\",\"on-select\",\"logout\"],1,null,[\"loc\",[null,[24,8],[24,115]]]]\n            ],\n            locals: [\"parentList\"],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 19,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 26,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"ic-menu-list\",[],[\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"parentMenu\",[\"loc\",[null,[20,33],[20,43]]]]],[],[]]],0,null,[\"loc\",[null,[20,6],[25,23]]]]\n          ],\n          locals: [\"parentMenu\"],\n          templates: [child0]\n        };\n      }());\n      var child2 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 28,\n                  \"column\": 6\n                },\n                \"end\": {\n                  \"line\": 66,\n                  \"column\": 6\n                }\n              },\n              \"moduleName\": \"garaje/templates/protected.hbs\"\n            },\n            isEmpty: false,\n            arity: 1,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"        \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"div\");\n              dom.setAttribute(el1,\"class\",\"bg-white\");\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"h4\");\n              dom.setAttribute(el2,\"class\",\"px2 py1 bg-grayLightest fw-400\");\n              var el3 = dom.createTextNode(\"News & Updates from Envoy\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"a\");\n              dom.setAttribute(el2,\"class\",\"fake-ic-menu-item grayDarker p2 border-top block\");\n              dom.setAttribute(el2,\"href\",\"https://blog.envoy.co/\");\n              dom.setAttribute(el2,\"target\",\"_blank\");\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"div\");\n              dom.setAttribute(el3,\"class\",\"flex\");\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"div\");\n              dom.setAttribute(el4,\"class\",\"flex-none mr2\");\n              dom.setAttribute(el4,\"style\",\"width:50px\");\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"img\");\n              dom.setAttribute(el5,\"src\",\"../assets/images/announcements/greetbot.png\");\n              dom.setAttribute(el5,\"width\",\"50px\");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"div\");\n              dom.setAttribute(el4,\"class\",\"flex-auto\");\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"h4\");\n              var el6 = dom.createTextNode(\"Hi! Welcome to Envoy’s News & Updates.\");\n              dom.appendChild(el5, el6);\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"p\");\n              dom.setAttribute(el5,\"class\",\"m0 grayDark\");\n              var el6 = dom.createTextNode(\"Come back here for the latest on new features, integrations, and more.\");\n              dom.appendChild(el5, el6);\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"a\");\n              dom.setAttribute(el2,\"class\",\"fake-ic-menu-item grayDarker p2 border-top block\");\n              dom.setAttribute(el2,\"href\",\"https://blog.envoy.co/roundup-mighty-mini-features-5b2949c8a994\");\n              dom.setAttribute(el2,\"target\",\"_blank\");\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"div\");\n              dom.setAttribute(el3,\"class\",\"flex\");\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"div\");\n              dom.setAttribute(el4,\"class\",\"flex-none mr2\");\n              dom.setAttribute(el4,\"style\",\"width:50px\");\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"img\");\n              dom.setAttribute(el5,\"src\",\"../assets/images/announcements/signature.png\");\n              dom.setAttribute(el5,\"width\",\"50px\");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"div\");\n              dom.setAttribute(el4,\"class\",\"flex-auto\");\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"h4\");\n              var el6 = dom.createTextNode(\"Attach legal agreements to pre-registration emails.\");\n              dom.appendChild(el5, el6);\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"p\");\n              dom.setAttribute(el5,\"class\",\"m0 grayDark\");\n              var el6 = dom.createTextNode(\"When you pre-register a visitor, send a copy of your NDA or waiver in advance of their visit.\");\n              dom.appendChild(el5, el6);\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"a\");\n              dom.setAttribute(el2,\"class\",\"fake-ic-menu-item grayDarker p2 border-top block\");\n              dom.setAttribute(el2,\"href\",\"https://blog.envoy.co/new-integration-salesforce-ee3c1482fe2d\");\n              dom.setAttribute(el2,\"target\",\"_blank\");\n              var el3 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el2, el3);\n              var el3 = dom.createElement(\"div\");\n              dom.setAttribute(el3,\"class\",\"flex\");\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"div\");\n              dom.setAttribute(el4,\"class\",\"flex-none mr2\");\n              dom.setAttribute(el4,\"style\",\"width:50px\");\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"img\");\n              dom.setAttribute(el5,\"src\",\"../assets/images/announcements/salesforce.png\");\n              dom.setAttribute(el5,\"width\",\"50px\");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el3, el4);\n              var el4 = dom.createElement(\"div\");\n              dom.setAttribute(el4,\"class\",\"flex-auto\");\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"h4\");\n              var el6 = dom.createTextNode(\"Create new Salesforce leads from Envoy visitors.\");\n              dom.appendChild(el5, el6);\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n                \");\n              dom.appendChild(el4, el5);\n              var el5 = dom.createElement(\"p\");\n              dom.setAttribute(el5,\"class\",\"m0 grayDark\");\n              var el6 = dom.createTextNode(\"Turn your Envoy visitor list into new leads in Salesforce. Plus, Envoy won’t duplicate existing leads!\");\n              dom.appendChild(el5, el6);\n              dom.appendChild(el4, el5);\n              var el5 = dom.createTextNode(\"\\n              \");\n              dom.appendChild(el4, el5);\n              dom.appendChild(el3, el4);\n              var el4 = dom.createTextNode(\"\\n            \");\n              dom.appendChild(el3, el4);\n              dom.appendChild(el2, el3);\n              var el3 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n          \");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createElement(\"a\");\n              dom.setAttribute(el2,\"class\",\"fake-ic-menu-item grayDark h5 px2 py1 bg-grayLightest border-top block\");\n              dom.setAttribute(el2,\"href\",\"https://blog.envoy.co/\");\n              dom.setAttribute(el2,\"target\",\"_blank\");\n              var el3 = dom.createTextNode(\"More new stuff on the Envoy blog\");\n              dom.appendChild(el2, el3);\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"\\n        \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes() { return []; },\n            statements: [\n\n            ],\n            locals: [\"parentList\"],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 27,\n                \"column\": 4\n              },\n              \"end\": {\n                \"line\": 67,\n                \"column\": 4\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 1,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"ic-menu-list\",[],[\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"parentMenu\",[\"loc\",[null,[28,33],[28,43]]]]],[],[]]],0,null,[\"loc\",[null,[28,6],[66,23]]]]\n          ],\n          locals: [\"parentMenu\"],\n          templates: [child0]\n        };\n      }());\n      var child3 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 72,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 74,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"class\",\"mr1 align-middle\");\n            dom.setAttribute(el1,\"src\",\"/assets/images/boss-small-white.svg\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child4 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 74,\n                \"column\": 10\n              },\n              \"end\": {\n                \"line\": 76,\n                \"column\": 10\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"            \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createElement(\"img\");\n            dom.setAttribute(el1,\"class\",\"mr1 align-middle\");\n            dom.setAttribute(el1,\"src\",\"/assets/images/logo-small-red.svg\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child5 = (function() {\n        var child0 = (function() {\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 79,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 79,\n                  \"column\": 168\n                }\n              },\n              \"moduleName\": \"garaje/templates/protected.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createComment(\"\");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\" ▾\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var morphs = new Array(1);\n              morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n              dom.insertBoundary(fragment, 0);\n              return morphs;\n            },\n            statements: [\n              [\"content\",\"currentLocation.nameWithCompanyName\",[\"loc\",[null,[79,121],[79,160]]]]\n            ],\n            locals: [],\n            templates: []\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 78,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 80,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\"\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"ic-menu-trigger\",[],[\"class\",\"p2 border-right js-mainHeader-location-trigger\",\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"manager.locationSwitcher\",[\"loc\",[null,[79,95],[79,119]]]]],[],[]]],0,null,[\"loc\",[null,[79,10],[79,188]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child6 = (function() {\n        var child0 = (function() {\n          var child0 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 87,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 89,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/templates/protected.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                \");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createComment(\"\");\n                dom.appendChild(el0, el1);\n                var el1 = dom.createTextNode(\" Left\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n                var morphs = new Array(1);\n                morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n                return morphs;\n              },\n              statements: [\n                [\"inline\",\"pluralized-word\",[[\"get\",\"trialDaysLeft\",[\"loc\",[null,[88,34],[88,47]]]],\"Trial Day\"],[],[\"loc\",[null,[88,16],[88,61]]]]\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          var child1 = (function() {\n            return {\n              meta: {\n                \"fragmentReason\": false,\n                \"revision\": \"Ember@2.2.0-beta.1\",\n                \"loc\": {\n                  \"source\": null,\n                  \"start\": {\n                    \"line\": 89,\n                    \"column\": 14\n                  },\n                  \"end\": {\n                    \"line\": 91,\n                    \"column\": 14\n                  }\n                },\n                \"moduleName\": \"garaje/templates/protected.hbs\"\n              },\n              isEmpty: false,\n              arity: 0,\n              cachedFragment: null,\n              hasRendered: false,\n              buildFragment: function buildFragment(dom) {\n                var el0 = dom.createDocumentFragment();\n                var el1 = dom.createTextNode(\"                Trial Over - Choose a Plan\\n\");\n                dom.appendChild(el0, el1);\n                return el0;\n              },\n              buildRenderNodes: function buildRenderNodes() { return []; },\n              statements: [\n\n              ],\n              locals: [],\n              templates: []\n            };\n          }());\n          return {\n            meta: {\n              \"fragmentReason\": false,\n              \"revision\": \"Ember@2.2.0-beta.1\",\n              \"loc\": {\n                \"source\": null,\n                \"start\": {\n                  \"line\": 85,\n                  \"column\": 10\n                },\n                \"end\": {\n                  \"line\": 93,\n                  \"column\": 10\n                }\n              },\n              \"moduleName\": \"garaje/templates/protected.hbs\"\n            },\n            isEmpty: false,\n            arity: 0,\n            cachedFragment: null,\n            hasRendered: false,\n            buildFragment: function buildFragment(dom) {\n              var el0 = dom.createDocumentFragment();\n              var el1 = dom.createTextNode(\"            \");\n              dom.appendChild(el0, el1);\n              var el1 = dom.createElement(\"span\");\n              var el2 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createComment(\"\");\n              dom.appendChild(el1, el2);\n              var el2 = dom.createTextNode(\"            \");\n              dom.appendChild(el1, el2);\n              dom.appendChild(el0, el1);\n              var el1 = dom.createTextNode(\"\\n\");\n              dom.appendChild(el0, el1);\n              return el0;\n            },\n            buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n              var element0 = dom.childAt(fragment, [1]);\n              var morphs = new Array(2);\n              morphs[0] = dom.createAttrMorph(element0, 'class');\n              morphs[1] = dom.createMorphAt(element0,1,1);\n              return morphs;\n            },\n            statements: [\n              [\"attribute\",\"class\",[\"concat\",[\"px1 py05 rounded bg-blueDarker white md-show js-trial-remaining \",[\"subexpr\",\"if\",[[\"get\",\"isTrialEndingSoon\",[\"loc\",[null,[86,94],[86,111]]]],\"bg-redDarker\"],[],[\"loc\",[null,[86,89],[86,128]]]]]]],\n              [\"block\",\"if\",[[\"get\",\"hasTrialDaysLeft\",[\"loc\",[null,[87,20],[87,36]]]]],[],0,1,[\"loc\",[null,[87,14],[91,21]]]]\n            ],\n            locals: [],\n            templates: [child0, child1]\n          };\n        }());\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 84,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 94,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createComment(\"\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n            dom.insertBoundary(fragment, 0);\n            dom.insertBoundary(fragment, null);\n            return morphs;\n          },\n          statements: [\n            [\"block\",\"link-to\",[\"billing\"],[\"class\",\"p2\"],0,null,[\"loc\",[null,[85,10],[93,22]]]]\n          ],\n          locals: [],\n          templates: [child0]\n        };\n      }());\n      var child7 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 96,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 98,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            dom.setNamespace(\"http://www.w3.org/2000/svg\");\n            var el1 = dom.createElement(\"svg\");\n            dom.setAttribute(el1,\"class\",\"ml2 align-middle nav-img\");\n            dom.setAttribute(el1,\"style\",\"vertical-align:-4px;margin-right:2px\");\n            dom.setAttribute(el1,\"width\",\"20\");\n            dom.setAttribute(el1,\"height\",\"19\");\n            dom.setAttribute(el1,\"viewBox\",\"0 0 23 22\");\n            dom.setAttribute(el1,\"xmlns\",\"http://www.w3.org/2000/svg\");\n            dom.setAttribute(el1,\"xmlns:sketch\",\"http://www.bohemiancoding.com/sketch/ns\");\n            var el2 = dom.createElement(\"path\");\n            dom.setAttribute(el2,\"d\",\"M20.116 17.748c-.411 1.531.496 3.104 2.029 3.515l-21.252-5.698c1.53.41 3.105-.498 3.515-2.029l1.363-5.082c.904-3.373 3.804-5.672 7.088-5.982.56-1.274 1.981-1.985 3.367-1.614 1.386.372 2.257 1.697 2.106 3.081 2.687 1.912 4.051 5.354 3.147 8.727l-1.363 5.082zm-11.369-.077c-.411 1.531.496 3.104 2.029 3.515 1.53.41 3.105-.498 3.515-2.029l-5.544-1.486z\");\n            dom.setAttribute(el2,\"sketch:type\",\"MSShapeGroup\");\n            dom.setAttribute(el2,\"stroke\",\"#393C44\");\n            dom.setAttribute(el2,\"stroke-width\",\"1.5\");\n            dom.setAttribute(el2,\"fill\",\"none\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" ▾\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      var child8 = (function() {\n        return {\n          meta: {\n            \"fragmentReason\": false,\n            \"revision\": \"Ember@2.2.0-beta.1\",\n            \"loc\": {\n              \"source\": null,\n              \"start\": {\n                \"line\": 99,\n                \"column\": 8\n              },\n              \"end\": {\n                \"line\": 101,\n                \"column\": 8\n              }\n            },\n            \"moduleName\": \"garaje/templates/protected.hbs\"\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode(\"          \");\n            dom.appendChild(el0, el1);\n            dom.setNamespace(\"http://www.w3.org/2000/svg\");\n            var el1 = dom.createElement(\"svg\");\n            dom.setAttribute(el1,\"class\",\"ml2 align-middle nav-img\");\n            dom.setAttribute(el1,\"style\",\"vertical-align:-5px;\");\n            dom.setAttribute(el1,\"width\",\"22\");\n            dom.setAttribute(el1,\"height\",\"20\");\n            dom.setAttribute(el1,\"viewBox\",\"0 0 25 23\");\n            dom.setAttribute(el1,\"xmlns\",\"http://www.w3.org/2000/svg\");\n            dom.setAttribute(el1,\"xmlns:sketch\",\"http://www.bohemiancoding.com/sketch/ns\");\n            var el2 = dom.createElement(\"path\");\n            dom.setAttribute(el2,\"d\",\"M12 1c4.218 0 5.502 2.071 5.502 6s-.553 5.706-2.5 7c2.259 0 8.999 1.079 8.999 8h-23c0-6.953 5.893-8 8.001-8-1.679-1.541-2.5-3.047-2.5-7s1.281-6 5.499-6z\");\n            dom.setAttribute(el2,\"stroke\",\"#393C44\");\n            dom.setAttribute(el2,\"stroke-width\",\"1.5\");\n            dom.setAttribute(el2,\"sketch:type\",\"MSShapeGroup\");\n            dom.setAttribute(el2,\"fill\",\"none\");\n            dom.appendChild(el1, el2);\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode(\" ▾\\n\");\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes() { return []; },\n          statements: [\n\n          ],\n          locals: [],\n          templates: []\n        };\n      }());\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 2,\n              \"column\": 2\n            },\n            \"end\": {\n              \"line\": 109,\n              \"column\": 2\n            }\n          },\n          \"moduleName\": \"garaje/templates/protected.hbs\"\n        },\n        isEmpty: false,\n        arity: 1,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"header\");\n          var el2 = dom.createTextNode(\"\\n      \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"nav\");\n          dom.setAttribute(el2,\"class\",\"flex flex-center px2\");\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"a\");\n          dom.setAttribute(el3,\"class\",\"js-click-logo\");\n          var el4 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createComment(\"\");\n          dom.appendChild(el3, el4);\n          var el4 = dom.createTextNode(\"        \");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"a\");\n          var el4 = dom.createTextNode(\"Dashboard\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"a\");\n          var el4 = dom.createTextNode(\"Employees\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"        \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"span\");\n          dom.setAttribute(el3,\"class\",\"flex-grow\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"      \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n    \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [4]);\n          var element2 = dom.childAt(element1, [1]);\n          var element3 = dom.childAt(element2, [1]);\n          var element4 = dom.childAt(element2, [5]);\n          var element5 = dom.childAt(element2, [7]);\n          var morphs = new Array(18);\n          morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n          morphs[1] = dom.createMorphAt(fragment,1,1,contextualElement);\n          morphs[2] = dom.createMorphAt(fragment,2,2,contextualElement);\n          morphs[3] = dom.createAttrMorph(element1, 'class');\n          morphs[4] = dom.createElementMorph(element3);\n          morphs[5] = dom.createMorphAt(element3,1,1);\n          morphs[6] = dom.createMorphAt(element2,3,3);\n          morphs[7] = dom.createAttrMorph(element4, 'class');\n          morphs[8] = dom.createElementMorph(element4);\n          morphs[9] = dom.createAttrMorph(element5, 'class');\n          morphs[10] = dom.createElementMorph(element5);\n          morphs[11] = dom.createMorphAt(element2,9,9);\n          morphs[12] = dom.createMorphAt(element2,11,11);\n          morphs[13] = dom.createMorphAt(element2,15,15);\n          morphs[14] = dom.createMorphAt(element2,16,16);\n          morphs[15] = dom.createMorphAt(fragment,6,6,contextualElement);\n          morphs[16] = dom.createMorphAt(fragment,8,8,contextualElement);\n          morphs[17] = dom.createMorphAt(fragment,10,10,contextualElement);\n          dom.insertBoundary(fragment, 0);\n          return morphs;\n        },\n        statements: [\n          [\"block\",\"if\",[[\"get\",\"subscription.hasLocationSwitcher\",[\"loc\",[null,[3,10],[3,42]]]]],[],0,null,[\"loc\",[null,[3,4],[18,11]]]],\n          [\"block\",\"ic-menu\",[],[\"class\",\"user\",\"manager\",[\"subexpr\",\"@mut\",[[\"get\",\"manager\",[\"loc\",[null,[19,36],[19,43]]]]],[],[]],\"menuName\",\"avatar\"],1,null,[\"loc\",[null,[19,4],[26,16]]]],\n          [\"block\",\"ic-menu\",[],[\"class\",\"updates\",\"manager\",[\"subexpr\",\"@mut\",[[\"get\",\"manager\",[\"loc\",[null,[27,39],[27,46]]]]],[],[]],\"menuName\",\"updates\"],2,null,[\"loc\",[null,[27,4],[67,16]]]],\n          [\"attribute\",\"class\",[\"concat\",[[\"subexpr\",\"unless\",[[\"get\",\"isBoss\",[\"loc\",[null,[69,28],[69,34]]]],\"bg-white\"],[],[\"loc\",[null,[69,19],[69,47]]]],\" mainHeader js-mainHeader \",[\"subexpr\",\"if\",[[\"get\",\"isBoss\",[\"loc\",[null,[69,78],[69,84]]]],\"boss bg-red\"],[],[\"loc\",[null,[69,73],[69,100]]]]]]],\n          [\"element\",\"action\",[\"clickLogo\",[\"get\",\"isBoss\",[\"loc\",[null,[71,32],[71,38]]]]],[],[\"loc\",[null,[71,11],[71,40]]]],\n          [\"block\",\"if\",[[\"get\",\"isBoss\",[\"loc\",[null,[72,16],[72,22]]]]],[],3,4,[\"loc\",[null,[72,10],[76,17]]]],\n          [\"block\",\"if\",[[\"get\",\"subscription.hasLocationSwitcher\",[\"loc\",[null,[78,14],[78,46]]]]],[],5,null,[\"loc\",[null,[78,8],[80,15]]]],\n          [\"attribute\",\"class\",[\"concat\",[\"p2 \",[\"subexpr\",\"if\",[[\"get\",\"dashboardActive\",[\"loc\",[null,[81,75],[81,90]]]],\"active\"],[],[\"loc\",[null,[81,70],[81,101]]]]]]],\n          [\"element\",\"action\",[\"goToRoute\",\"dashboard\"],[\"bubbles\",false],[\"loc\",[null,[81,11],[81,59]]]],\n          [\"attribute\",\"class\",[\"concat\",[\"p2 \",[\"subexpr\",\"if\",[[\"get\",\"employeesActive\",[\"loc\",[null,[82,75],[82,90]]]],\"active\"],[],[\"loc\",[null,[82,70],[82,101]]]]]]],\n          [\"element\",\"action\",[\"goToRoute\",\"employees\"],[\"bubbles\",false],[\"loc\",[null,[82,11],[82,59]]]],\n          [\"inline\",\"link-to\",[\"Settings\",\"settings\"],[\"class\",\"p2\"],[\"loc\",[null,[83,8],[83,52]]]],\n          [\"block\",\"if\",[[\"get\",\"isTrialDaysLeftDisplayed\",[\"loc\",[null,[84,14],[84,38]]]]],[],6,null,[\"loc\",[null,[84,8],[94,15]]]],\n          [\"block\",\"ic-menu-trigger\",[],[\"class\",\"\",\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"manager.updates\",[\"loc\",[null,[96,47],[96,62]]]]],[],[]]],7,null,[\"loc\",[null,[96,8],[98,28]]]],\n          [\"block\",\"ic-menu-trigger\",[],[\"class\",\"\",\"parentMenu\",[\"subexpr\",\"@mut\",[[\"get\",\"manager.avatar\",[\"loc\",[null,[99,47],[99,61]]]]],[],[]]],8,null,[\"loc\",[null,[99,8],[101,28]]]],\n          [\"inline\",\"outlet\",[\"subnav\"],[],[\"loc\",[null,[105,4],[105,23]]]],\n          [\"inline\",\"flash-message\",[],[\"flashVisible\",[\"subexpr\",\"@mut\",[[\"get\",\"flashVisible\",[\"loc\",[null,[107,33],[107,45]]]]],[],[]],\"message\",[\"subexpr\",\"@mut\",[[\"get\",\"message\",[\"loc\",[null,[107,54],[107,61]]]]],[],[]],\"type\",[\"subexpr\",\"@mut\",[[\"get\",\"type\",[\"loc\",[null,[107,67],[107,71]]]]],[],[]],\"action\",\"hideFlash\"],[\"loc\",[null,[107,4],[107,92]]]],\n          [\"inline\",\"flash-message\",[],[\"flashVisible\",[\"subexpr\",\"@mut\",[[\"get\",\"isNewVersionAvailable\",[\"loc\",[null,[108,33],[108,54]]]]],[],[]],\"message\",\"Your Envoy iPad app requires a critical update. Update to avoid an interruption in service.\",\"type\",\"static\",\"action\",\"dismissOldVersionBar\",\"style\",\"background:rgba(197,0,0,.95)\"],[\"loc\",[null,[108,4],[108,239]]]]\n        ],\n        locals: [\"manager\"],\n        templates: [child0, child1, child2, child3, child4, child5, child6, child7, child8]\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 123,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 125,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/protected.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          Envoy \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"span\");\n          dom.setAttribute(el1,\"class\",\"icon icon-love\");\n          var el2 = dom.createTextNode(\"loves\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\" \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,3,3,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"content\",\"company.name\",[\"loc\",[null,[124,58],[124,74]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 125,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 127,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/protected.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          The new standard for\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"br\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"visitor registration.\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 168,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/protected.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"style\",\"min-height:100vh;padding-bottom:100px;\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createComment(\"\");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"main\");\n        dom.setAttribute(el2,\"class\",\"flex-auto\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"footer\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"container clearfix mxn2 flex footer-flex\");\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"mx2 sm-col-3 mb2 flex flex-column\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"href\",\"/\");\n        dom.setAttribute(el4,\"class\",\"mainFooter-logo flex-auto\");\n        var el5 = dom.createTextNode(\"Envoy\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"js-footer mt2\");\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"nav\");\n        dom.setAttribute(el3,\"class\",\"mx2 sm-col-3 mb2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"white mb1\");\n        var el5 = dom.createTextNode(\"Company\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/about/\");\n        var el5 = dom.createTextNode(\"About Us\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/jobs/\");\n        var el5 = dom.createTextNode(\"Jobs\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/press/\");\n        var el5 = dom.createTextNode(\"Press\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/security-details/\");\n        var el5 = dom.createTextNode(\"Security\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/tos/\");\n        dom.setAttribute(el4,\"style\",\"display:inline-block;\");\n        var el5 = dom.createTextNode(\"Terms\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" & \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/privacypolicy/\");\n        dom.setAttribute(el4,\"style\",\"display:inline-block;\");\n        var el5 = dom.createTextNode(\"Privacy\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/partners/\");\n        dom.setAttribute(el4,\"target\",\"_blank\");\n        var el5 = dom.createTextNode(\"Partner Program\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://developers.envoy.co\");\n        dom.setAttribute(el4,\"target\",\"_blank\");\n        var el5 = dom.createTextNode(\"Developers\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"nav\");\n        dom.setAttribute(el3,\"class\",\"mx2 sm-col-3 mb2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"white mb1\");\n        var el5 = dom.createTextNode(\"Product\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/features/\");\n        var el5 = dom.createTextNode(\"Features\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/iphone/\");\n        var el5 = dom.createTextNode(\"Envoy for iPhone\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/store/\");\n        var el5 = dom.createTextNode(\"Store\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/envoy-in-a-box/\");\n        var el5 = dom.createTextNode(\"Envoy in a Box\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/custom-badges/\");\n        var el5 = dom.createTextNode(\"Custom Badges\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/education/\");\n        var el5 = dom.createTextNode(\"Envoy for Education\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://blog.envoy.co/\");\n        dom.setAttribute(el4,\"target\",\"_blank\");\n        var el5 = dom.createTextNode(\"News & Updates\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"nav\");\n        dom.setAttribute(el3,\"class\",\"mx2 sm-col-3 mb2\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"p\");\n        dom.setAttribute(el4,\"class\",\"white mb1\");\n        var el5 = dom.createElement(\"span\");\n        dom.setAttribute(el5,\"class\",\"u-hideMobile\");\n        var el6 = dom.createTextNode(\"Customer \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"Support\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://help.envoy.co\");\n        var el5 = dom.createTextNode(\"Help Center\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/downloads/envoy-productinfo.pdf\");\n        var el5 = dom.createTextNode(\"One-Page PDF\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://twitter.com/envoy\");\n        var el5 = dom.createTextNode(\"Twitter\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://status.envoy.co\");\n        var el5 = dom.createTextNode(\"Status\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/contact/\");\n        var el5 = dom.createTextNode(\"Contact Us\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"tel:+14156366605\");\n        var el5 = dom.createTextNode(\"(415) 636-6605\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"class\",\"block\");\n        dom.setAttribute(el4,\"href\",\"javascript:void(0);\");\n        dom.setAttribute(el4,\"onclick\",\"LC_API.show_full_view();return false;\");\n        var el5 = dom.createTextNode(\"Live Chat\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createElement(\"iframe\");\n        dom.setAttribute(el1,\"style\",\"display:none;\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element6 = dom.childAt(fragment, [0]);\n        var element7 = dom.childAt(fragment, [2]);\n        var element8 = dom.childAt(fragment, [4]);\n        var morphs = new Array(6);\n        morphs[0] = dom.createAttrMorph(element6, 'class');\n        morphs[1] = dom.createMorphAt(element6,1,1);\n        morphs[2] = dom.createMorphAt(dom.childAt(element6, [3]),1,1);\n        morphs[3] = dom.createAttrMorph(element7, 'class');\n        morphs[4] = dom.createMorphAt(dom.childAt(element7, [1, 1, 3]),1,1);\n        morphs[5] = dom.createAttrMorph(element8, 'src');\n        return morphs;\n      },\n      statements: [\n        [\"attribute\",\"class\",[\"concat\",[\"flex flex-column relative pageContainer \",[\"subexpr\",\"if\",[[\"get\",\"dashboardActive\",[\"loc\",[null,[1,57],[1,72]]]],\"pageIsResponsive\"],[],[\"loc\",[null,[1,52],[1,93]]]]]]],\n        [\"block\",\"ic-menu-manager\",[],[],0,null,[\"loc\",[null,[2,2],[109,22]]]],\n        [\"content\",\"outlet\",[\"loc\",[null,[112,4],[112,14]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"bg-grayDarkerer grayDark py4 \",[\"subexpr\",\"if\",[[\"get\",\"dashboardActive\",[\"loc\",[null,[117,49],[117,64]]]],\"pageIsResponsive\"],[],[\"loc\",[null,[117,44],[117,85]]]]]]],\n        [\"block\",\"if\",[[\"get\",\"isSubscribed\",[\"loc\",[null,[123,14],[123,26]]]]],[],1,2,[\"loc\",[null,[123,8],[127,15]]]],\n        [\"attribute\",\"src\",[\"get\",\"envoyIframeUrl\",[\"loc\",[null,[167,14],[167,28]]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2]\n    };\n  }()));\n\n});","define('garaje/templates/settings/-nav', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 5,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 7,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/settings/-nav.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Customize\",\"customize\"],[\"class\",\"mr2 h6 uppercase\"],[\"loc\",[null,[6,6],[6,66]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 12,\n              \"column\": 4\n            },\n            \"end\": {\n              \"line\": 14,\n              \"column\": 4\n            }\n          },\n          \"moduleName\": \"garaje/templates/settings/-nav.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"      \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment(\"\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment,1,1,contextualElement);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"link-to\",[\"Billing\",\"billing\"],[\"class\",\"mr2 h6 uppercase\"],[\"loc\",[null,[13,6],[13,62]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 17,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/settings/-nav.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"header\");\n        dom.setAttribute(el1,\"class\",\"border-top bg-grayLightest\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"nav\");\n        dom.setAttribute(el2,\"class\",\"flex flex-center p2\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        var el4 = dom.createTextNode(\"Badge\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"a\");\n        var el4 = dom.createTextNode(\"Pre-Registration\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element0 = dom.childAt(fragment, [0, 1]);\n        var element1 = dom.childAt(element0, [7]);\n        var element2 = dom.childAt(element0, [11]);\n        var morphs = new Array(10);\n        morphs[0] = dom.createMorphAt(element0,1,1);\n        morphs[1] = dom.createMorphAt(element0,3,3);\n        morphs[2] = dom.createMorphAt(element0,5,5);\n        morphs[3] = dom.createAttrMorph(element1, 'class');\n        morphs[4] = dom.createElementMorph(element1);\n        morphs[5] = dom.createMorphAt(element0,9,9);\n        morphs[6] = dom.createAttrMorph(element2, 'class');\n        morphs[7] = dom.createElementMorph(element2);\n        morphs[8] = dom.createMorphAt(element0,13,13);\n        morphs[9] = dom.createMorphAt(element0,15,15);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"link-to\",[\"Account\",\"location\"],[\"class\",\"mr2 h6 uppercase\"],[\"loc\",[null,[3,4],[3,61]]]],\n        [\"inline\",\"link-to\",[\"iPad\",\"ipad\"],[\"class\",\"mr2 h6 uppercase\"],[\"loc\",[null,[4,4],[4,54]]]],\n        [\"block\",\"if\",[[\"get\",\"subscription.isFreePlanEnabled\",[\"loc\",[null,[5,10],[5,40]]]]],[],0,null,[\"loc\",[null,[5,4],[7,11]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"mr2 h6 uppercase \",[\"subexpr\",\"if\",[[\"get\",\"badgeActive\",[\"loc\",[null,[8,81],[8,92]]]],\"active\"],[],[\"loc\",[null,[8,76],[8,103]]]]]]],\n        [\"element\",\"action\",[\"goToRoute\",\"badge\"],[\"bubbles\",false],[\"loc\",[null,[8,7],[8,51]]]],\n        [\"inline\",\"link-to\",[\"Notifications\",\"notifications\"],[\"class\",\"mr2 h6 uppercase\"],[\"loc\",[null,[9,4],[9,72]]]],\n        [\"attribute\",\"class\",[\"concat\",[\"mr2 h6 uppercase \",[\"subexpr\",\"if\",[[\"get\",\"preRegistrationActive\",[\"loc\",[null,[10,92],[10,113]]]],\"active\"],[],[\"loc\",[null,[10,87],[10,124]]]]]]],\n        [\"element\",\"action\",[\"goToRoute\",\"pre-registration\"],[\"bubbles\",false],[\"loc\",[null,[10,7],[10,62]]]],\n        [\"inline\",\"link-to\",[\"Integrations\",\"settings.integrations\"],[\"class\",\"mr2 h6 uppercase\"],[\"loc\",[null,[11,4],[11,79]]]],\n        [\"block\",\"if\",[[\"get\",\"subscription.canAccessBilling\",[\"loc\",[null,[12,10],[12,39]]]]],[],1,null,[\"loc\",[null,[12,4],[14,11]]]]\n      ],\n      locals: [],\n      templates: [child0, child1]\n    };\n  }()));\n\n});","define('garaje/templates/settings/loading', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 8,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/settings/loading.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"loader\");\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.setNamespace(\"http://www.w3.org/2000/svg\");\n        var el2 = dom.createElement(\"svg\");\n        dom.setAttribute(el2,\"xmlns\",\"http://www.w3.org/2000/svg\");\n        dom.setAttribute(el2,\"viewBox\",\"0 0 32 32\");\n        dom.setAttribute(el2,\"width\",\"32\");\n        dom.setAttribute(el2,\"height\",\"32\");\n        dom.setAttribute(el2,\"fill\",\"white\");\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"path\");\n        dom.setAttribute(el3,\"opacity\",\".25\");\n        dom.setAttribute(el3,\"d\",\"M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 1 A14 14 0 0 1 16 31 A10 10 0 0 1 16 1\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"path\");\n        dom.setAttribute(el3,\"d\",\"M16 0 A16 16 0 0 1 32 16 L31 16 A15 15 0 0 0 16 1z\");\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"animateTransform\");\n        dom.setAttribute(el4,\"attributeName\",\"transform\");\n        dom.setAttribute(el4,\"type\",\"rotate\");\n        dom.setAttribute(el4,\"from\",\"0 16 16\");\n        dom.setAttribute(el4,\"to\",\"360 16 16\");\n        dom.setAttribute(el4,\"dur\",\"0.5s\");\n        dom.setAttribute(el4,\"repeatCount\",\"indefinite\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/settings', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"missing-wrapper\",\n          \"problems\": [\n            \"wrong-type\",\n            \"multiple-nodes\"\n          ]\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 4,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/settings.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createComment(\"\");\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var morphs = new Array(2);\n        morphs[0] = dom.createMorphAt(fragment,0,0,contextualElement);\n        morphs[1] = dom.createMorphAt(fragment,2,2,contextualElement);\n        dom.insertBoundary(fragment, 0);\n        return morphs;\n      },\n      statements: [\n        [\"inline\",\"outlet\",[\"banner\"],[],[\"loc\",[null,[1,0],[1,19]]]],\n        [\"content\",\"outlet\",[\"loc\",[null,[3,0],[3,10]]]]\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/templates/subscribe', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    var child0 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 13,\n              \"column\": 8\n            },\n            \"end\": {\n              \"line\": 15,\n              \"column\": 10\n            }\n          },\n          \"moduleName\": \"garaje/templates/subscribe.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"icon-checkmark\");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes() { return []; },\n        statements: [\n\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child1 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 15,\n              \"column\": 10\n            },\n            \"end\": {\n              \"line\": 23,\n              \"column\": 8\n            }\n          },\n          \"moduleName\": \"garaje/templates/subscribe.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"label\");\n          dom.setAttribute(el1,\"class\",\"toggle toggle--tiny\");\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"input\");\n          dom.setAttribute(el2,\"type\",\"checkbox\");\n          dom.setAttribute(el2,\"class\",\"js-yearly-toggle\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"span\");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element1 = dom.childAt(fragment, [1, 1]);\n          if (this.cachedFragment) { dom.repairClonedNode(element1,[],true); }\n          var morphs = new Array(2);\n          morphs[0] = dom.createAttrMorph(element1, 'checked');\n          morphs[1] = dom.createAttrMorph(element1, 'onclick');\n          return morphs;\n        },\n        statements: [\n          [\"attribute\",\"checked\",[\"get\",\"isYearlyPeriod\",[\"loc\",[null,[18,29],[18,43]]]]],\n          [\"attribute\",\"onclick\",[\"subexpr\",\"action\",[\"swapPeriod\"],[\"value\",\"target.checked\"],[\"loc\",[null,[20,27],[20,73]]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child2 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 39,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 51,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/subscribe.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          dom.setAttribute(el1,\"class\",\"mt4\");\n          var el2 = dom.createTextNode(\"Credit Card\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"p\");\n          dom.setAttribute(el1,\"class\",\"h5 grayDark\");\n          var el2 = dom.createTextNode(\"Visa, MasterCard, AMEX, Discover\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"fieldset\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"border rounded p2 mb3 flex flex-column\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(dom.childAt(fragment, [5, 1]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"cc-form\",[],[\"action\",\"subscribe\",\"onSubmit\",\"submitSubscribeForm\"],[\"loc\",[null,[45,12],[48,14]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    var child3 = (function() {\n      return {\n        meta: {\n          \"fragmentReason\": false,\n          \"revision\": \"Ember@2.2.0-beta.1\",\n          \"loc\": {\n            \"source\": null,\n            \"start\": {\n              \"line\": 53,\n              \"column\": 6\n            },\n            \"end\": {\n              \"line\": 76,\n              \"column\": 6\n            }\n          },\n          \"moduleName\": \"garaje/templates/subscribe.hbs\"\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode(\"        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"h4\");\n          dom.setAttribute(el1,\"class\",\"mt4 mb2\");\n          var el2 = dom.createTextNode(\"Optional Questions\");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\\n        \");\n          dom.appendChild(el0, el1);\n          var el1 = dom.createElement(\"div\");\n          dom.setAttribute(el1,\"class\",\"clearfix mxn2\");\n          var el2 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"col col-6 px2\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createElement(\"label\");\n          dom.setAttribute(el3,\"for\",\"_procurementSource\");\n          var el4 = dom.createTextNode(\"Where did you purchase your iPad?\");\n          dom.appendChild(el3, el4);\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n\\n          \");\n          dom.appendChild(el1, el2);\n          var el2 = dom.createElement(\"div\");\n          dom.setAttribute(el2,\"class\",\"col col-6 px2\");\n          var el3 = dom.createTextNode(\"\\n            \");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createComment(\"\");\n          dom.appendChild(el2, el3);\n          var el3 = dom.createTextNode(\"\\n          \");\n          dom.appendChild(el2, el3);\n          dom.appendChild(el1, el2);\n          var el2 = dom.createTextNode(\"\\n        \");\n          dom.appendChild(el1, el2);\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode(\"\\n\");\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var element0 = dom.childAt(fragment, [3]);\n          var morphs = new Array(2);\n          morphs[0] = dom.createMorphAt(dom.childAt(element0, [1]),3,3);\n          morphs[1] = dom.createMorphAt(dom.childAt(element0, [3]),1,1);\n          return morphs;\n        },\n        statements: [\n          [\"inline\",\"x-select-blockless\",[],[\"id\",\"_procurementSource\",\"content\",[\"subexpr\",\"@mut\",[[\"get\",\"procurementSources\",[\"loc\",[null,[61,20],[61,38]]]]],[],[]],\"class\",\"js-procurement-source\",\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.procurementSource\",[\"loc\",[null,[63,18],[63,48]]]]],[],[]],\"prompt\",\" \"],[\"loc\",[null,[59,12],[65,14]]]],\n          [\"inline\",\"labeled-input\",[],[\"value\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.referral\",[\"loc\",[null,[70,18],[70,39]]]]],[],[]],\"label\",\"Who referred you to Envoy?\",\"inputClass\",\"js-referral\"],[\"loc\",[null,[69,12],[73,14]]]]\n        ],\n        locals: [],\n        templates: []\n      };\n    }());\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 89,\n            \"column\": 0\n          }\n        },\n        \"moduleName\": \"garaje/templates/subscribe.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"container px2\");\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"h2\");\n        dom.setAttribute(el2,\"class\",\"mt4 center js-subscribe-header\");\n        var el3 = dom.createTextNode(\"Subscribing to \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\" \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createComment(\"\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"span\");\n        dom.setAttribute(el3,\"class\",\"gray fw-200\");\n        var el4 = dom.createTextNode(\" · \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"span\");\n        dom.setAttribute(el4,\"class\",\"js-price\");\n        var el5 = dom.createTextNode(\"$\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" per month\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"fieldset\");\n        dom.setAttribute(el2,\"class\",\"clearfix mt4\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"col-8 mx-auto\");\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h4\");\n        dom.setAttribute(el4,\"class\",\"my2\");\n        var el5 = dom.createTextNode(\"Billing Cycle\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"border rounded p2 mb3 flex flex-center\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createElement(\"div\");\n        dom.setAttribute(el5,\"class\",\"flex-auto\");\n        var el6 = dom.createTextNode(\"\\n          \");\n        dom.appendChild(el5, el6);\n        var el6 = dom.createElement(\"p\");\n        dom.setAttribute(el6,\"class\",\"m0 js-yearly-savings\");\n        var el7 = dom.createTextNode(\"Save \");\n        dom.appendChild(el6, el7);\n        var el7 = dom.createElement(\"strong\");\n        dom.setAttribute(el7,\"class\",\"js-yearlySavings\");\n        var el8 = dom.createComment(\"\");\n        dom.appendChild(el7, el8);\n        dom.appendChild(el6, el7);\n        var el7 = dom.createTextNode(\" with Yearly billing\");\n        dom.appendChild(el6, el7);\n        dom.appendChild(el5, el6);\n        var el6 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el5, el6);\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"h4\");\n        dom.setAttribute(el4,\"class\",\"mt4 mb2\");\n        var el5 = dom.createTextNode(\"Plan Details\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createComment(\"\");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"div\");\n        dom.setAttribute(el4,\"class\",\"center mt4\");\n        var el5 = dom.createTextNode(\"\\n        \");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createComment(\"\");\n        dom.appendChild(el4, el5);\n        var el5 = dom.createTextNode(\"\\n      \");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        var el1 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n        var element2 = dom.childAt(fragment, [0]);\n        var element3 = dom.childAt(element2, [1]);\n        var element4 = dom.childAt(element2, [3, 1]);\n        var element5 = dom.childAt(element4, [3]);\n        var morphs = new Array(9);\n        morphs[0] = dom.createMorphAt(element3,1,1);\n        morphs[1] = dom.createMorphAt(element3,3,3);\n        morphs[2] = dom.createMorphAt(dom.childAt(element3, [4, 1]),1,1);\n        morphs[3] = dom.createMorphAt(dom.childAt(element5, [1, 1, 1]),0,0);\n        morphs[4] = dom.createMorphAt(element5,3,3);\n        morphs[5] = dom.createMorphAt(element4,7,7);\n        morphs[6] = dom.createMorphAt(element4,9,9);\n        morphs[7] = dom.createMorphAt(element4,11,11);\n        morphs[8] = dom.createMorphAt(dom.childAt(element4, [13]),1,1);\n        return morphs;\n      },\n      statements: [\n        [\"content\",\"model.name\",[\"loc\",[null,[3,60],[3,74]]]],\n        [\"inline\",\"capitalize-word\",[[\"get\",\"period\",[\"loc\",[null,[3,93],[3,99]]]]],[],[\"loc\",[null,[3,75],[3,101]]]],\n        [\"content\",\"price\",[\"loc\",[null,[3,161],[3,170]]]],\n        [\"inline\",\"formatted-currency\",[[\"get\",\"yearlySavings\",[\"loc\",[null,[11,101],[11,114]]]],true],[],[\"loc\",[null,[11,80],[11,121]]]],\n        [\"block\",\"if\",[[\"get\",\"isYearlyPeriodFixed\",[\"loc\",[null,[13,14],[13,33]]]]],[],0,1,[\"loc\",[null,[13,8],[23,15]]]],\n        [\"inline\",\"plan-ledger\",[],[\"coupon\",[\"subexpr\",\"@mut\",[[\"get\",\"coupon\",[\"loc\",[null,[28,13],[28,19]]]]],[],[]],\"locations\",[\"subexpr\",\"@mut\",[[\"get\",\"locations.active\",[\"loc\",[null,[29,16],[29,32]]]]],[],[]],\"period\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.period\",[\"loc\",[null,[30,13],[30,32]]]]],[],[]],\"plan\",[\"subexpr\",\"@mut\",[[\"get\",\"currentPlan\",[\"loc\",[null,[31,11],[31,22]]]]],[],[]],\"periodStart\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.periodStart\",[\"loc\",[null,[32,18],[32,42]]]]],[],[]],\"periodEnd\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.periodEnd\",[\"loc\",[null,[33,16],[33,38]]]]],[],[]],\"creditBalance\",[\"subexpr\",\"@mut\",[[\"get\",\"subscription.creditBalance\",[\"loc\",[null,[34,20],[34,46]]]]],[],[]],\"newPeriod\",[\"subexpr\",\"@mut\",[[\"get\",\"period\",[\"loc\",[null,[35,16],[35,22]]]]],[],[]],\"newPlan\",[\"subexpr\",\"@mut\",[[\"get\",\"model\",[\"loc\",[null,[36,14],[36,19]]]]],[],[]]],[\"loc\",[null,[27,6],[37,8]]]],\n        [\"block\",\"unless\",[[\"get\",\"isCCPresent\",[\"loc\",[null,[39,16],[39,27]]]]],[],2,null,[\"loc\",[null,[39,6],[51,17]]]],\n        [\"block\",\"unless\",[[\"get\",\"subscription.isSubscribed\",[\"loc\",[null,[53,16],[53,41]]]]],[],3,null,[\"loc\",[null,[53,6],[76,17]]]],\n        [\"inline\",\"async-button\",[],[\"action\",[\"subexpr\",\"@mut\",[[\"get\",\"subscribeAction\",[\"loc\",[null,[80,15],[80,30]]]]],[],[]],\"class\",\"btn btn--green\",\"default\",[\"subexpr\",\"@mut\",[[\"get\",\"subscribeButtonTitle\",[\"loc\",[null,[82,16],[82,36]]]]],[],[]],\"pending\",\"Subscribing...\"],[\"loc\",[null,[79,8],[84,10]]]]\n      ],\n      locals: [],\n      templates: [child0, child1, child2, child3]\n    };\n  }()));\n\n});","define('garaje/templates/unauthorized', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = Ember.HTMLBars.template((function() {\n    return {\n      meta: {\n        \"fragmentReason\": {\n          \"name\": \"triple-curlies\"\n        },\n        \"revision\": \"Ember@2.2.0-beta.1\",\n        \"loc\": {\n          \"source\": null,\n          \"start\": {\n            \"line\": 1,\n            \"column\": 0\n          },\n          \"end\": {\n            \"line\": 7,\n            \"column\": 6\n          }\n        },\n        \"moduleName\": \"garaje/templates/unauthorized.hbs\"\n      },\n      isEmpty: false,\n      arity: 0,\n      cachedFragment: null,\n      hasRendered: false,\n      buildFragment: function buildFragment(dom) {\n        var el0 = dom.createDocumentFragment();\n        var el1 = dom.createElement(\"div\");\n        dom.setAttribute(el1,\"class\",\"errorPage\");\n        var el2 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el1, el2);\n        var el2 = dom.createElement(\"div\");\n        dom.setAttribute(el2,\"class\",\"content\");\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"div\");\n        dom.setAttribute(el3,\"class\",\"emptyImage empty-error\");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"h2\");\n        var el4 = dom.createTextNode(\"Unauthorized\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n    \");\n        dom.appendChild(el2, el3);\n        var el3 = dom.createElement(\"p\");\n        var el4 = dom.createTextNode(\"You are not authorized to view this page. Please \");\n        dom.appendChild(el3, el4);\n        var el4 = dom.createElement(\"a\");\n        dom.setAttribute(el4,\"href\",\"https://envoy.co/contact\");\n        var el5 = dom.createTextNode(\"submit a support ticket\");\n        dom.appendChild(el4, el5);\n        dom.appendChild(el3, el4);\n        var el4 = dom.createTextNode(\" if you need help.\");\n        dom.appendChild(el3, el4);\n        dom.appendChild(el2, el3);\n        var el3 = dom.createTextNode(\"\\n  \");\n        dom.appendChild(el2, el3);\n        dom.appendChild(el1, el2);\n        var el2 = dom.createTextNode(\"\\n\");\n        dom.appendChild(el1, el2);\n        dom.appendChild(el0, el1);\n        return el0;\n      },\n      buildRenderNodes: function buildRenderNodes() { return []; },\n      statements: [\n\n      ],\n      locals: [],\n      templates: []\n    };\n  }()));\n\n});","define('garaje/tests/acceptance/analytics-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance: Garaje Analytics', {\n    beforeEach: function beforeEach() {\n      application = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        pre_registration_enabled: true,\n        cc_receptionist_enabled: false,\n        pre_registration_link: 'https://envoy.co/invites/token_a',\n        security_desk_link: 'https://envoy.co/security/token_a',\n        company: {\n          id: 1\n        },\n        printer: {\n          id: 1\n        },\n        current_version: '1.3.0',\n        installed_version: '1.3.0',\n        pubnub_channel_entry: 'a',\n        pubnub_channel_invite: 'b'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.register('GET', '/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              features: ['dashboard', 'pre_registration']\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: { \"id\": 1, \"name\": \"Cool Chip\", \"slack_connected\": false, \"slack_team_name\": null, \"hipchat_connected\": false, \"onboarding_status\": \"complete\" }\n          }];\n        });\n        this.get('/api/v1/printers/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, { printer: { id: 1, enabled: false } }];\n        });\n        this.get('/api/v1/employees/36', function () {\n          return [200, { 'Content-Type': 'application/json' }, { \"employee\": { \"id\": 36, \"name\": \"Marquise McDermott\", \"email\": \"rogelio.pfeffer@kriskling.info\", \"phone_number\": \"(809) 930-7895\", \"cc_employee\": true, \"assistant_id\": null, \"created_at\": \"2015-09-16T20:47:21.363Z\", \"location_ids\": [5, 4] }, \"locations\": [{ \"id\": 5, \"name\": \"HQ\", \"address\": \"22nd Street Caltrain Station, San Francisco, CA, United States\", \"domain\": \"example.com\" }, { \"id\": 4, \"name\": \"SF\", \"address\": null, \"domain\": \"example.com\" }] }];\n        });\n        this.get('/api/v1/employees/57', function () {\n          return [200, { 'Content-Type': 'application/json' }, { \"employee\": { \"id\": 57, \"name\": \"Miss Mara Feest\", \"email\": \"brittany@watsicaadams.name\", \"phone_number\": \"1-889-964-0922\", \"cc_employee\": true, \"assistant_id\": null, \"created_at\": \"2015-09-16T20:47:21.510Z\", \"location_ids\": [5, 4] }, \"locations\": [{ \"id\": 5, \"name\": \"HQ\", \"address\": \"22nd Street Caltrain Station, San Francisco, CA, United States\", \"domain\": \"example.com\" }, { \"id\": 4, \"name\": \"SF\", \"address\": null, \"domain\": \"example.com\" }] }];\n        });\n        this.get('/api/v2/analytics/leaderboards', function () {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"data\": [{ \"type\": \"leaderboards\", \"id\": 36, \"attributes\": { \"count\": 5 }, \"relationships\": { \"employee\": { \"data\": { \"type\": \"employees\", \"id\": 36 } } } }, { \"type\": \"leaderboards\", \"id\": 57, \"attributes\": { \"count\": 4 }, \"relationships\": { \"employee\": { \"data\": { \"type\": \"employees\", \"id\": 57 } } } }] }];\n        });\n        this.get('/api/v2/analytics/entries_by_hour', function () {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"2015-08-30 07:00:00+00\": 0 }];\n        });\n        this.get('/api/v2/analytics/entries_by_day', function () {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"2015-08-30 07:00:00+00\": 0 }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('run through analytics testing - assert request params, y-axis labels, x-axis labels, leaderboard rendering', function (assert) {\n    assert.expect(16);\n    server.get('/api/v2/analytics/leaderboards', function (request) {\n      assert.ok(true, 'called leaderboards');\n      assert.equal(request.queryParams.location_id, '1', 'should pass in correct location id');\n\n      return [200, { \"Content-Type\": \"application/json\" }, { \"data\": [{ \"type\": \"leaderboards\", \"id\": 36, \"attributes\": { \"count\": 5 }, \"relationships\": { \"employee\": { \"data\": { \"type\": \"employees\", \"id\": 36 } } } }, { \"type\": \"leaderboards\", \"id\": 57, \"attributes\": { \"count\": 4 }, \"relationships\": { \"employee\": { \"data\": { \"type\": \"employees\", \"id\": 57 } } } }] }];\n    });\n    server.get('/api/v2/analytics/entries_by_hour', function (request) {\n      assert.ok(true, 'called entries by hour');\n      assert.equal(request.queryParams.location_id, '1', 'should pass in correct location id');\n\n      var today = moment().endOf('day').utc().format();\n      var thirtyDaysAgo = moment().startOf('day').subtract(30, 'days').utc().format();\n      assert.equal(moment(request.queryParams.start_time).utc().format(), thirtyDaysAgo, 'should show correct entries by hour start_time');\n      assert.equal(moment(request.queryParams.end_time).utc().format(), today, 'should show correct entries by hour end_time');\n\n      var todayFormatted = moment().utc().format('YYYY-MM-DD');\n\n      return [200, { \"Content-Type\": \"application/json\" }, { \"2015-08-30 07:00:00+00\": 0, \"2015-08-30 08:00:00+00\": 0, \"2015-08-30 09:00:00+00\": 0, \"2015-08-30 10:00:00+00\": 0, \"2015-08-30 11:00:00+00\": 0, \"2015-08-30 12:00:00+00\": 0, \"2015-08-30 13:00:00+00\": 0, \"2015-08-30 14:00:00+00\": 0, \"2015-08-30 15:00:00+00\": 0, \"2015-08-30 16:00:00+00\": 0, \"2015-08-30 17:00:00+00\": 0, \"2015-08-30 18:00:00+00\": 0, \"2015-08-30 19:00:00+00\": 0, \"2015-08-30 20:00:00+00\": 0, \"2015-08-30 21:00:00+00\": 0, \"2015-08-30 22:00:00+00\": 0, \"2015-08-30 23:00:00+00\": 0, \"2015-08-31 00:00:00+00\": 0, \"2015-08-31 01:00:00+00\": 0, \"2015-08-31 02:00:00+00\": 0, \"2015-08-31 03:00:00+00\": 0, \"2015-08-31 04:00:00+00\": 0, \"2015-08-31 05:00:00+00\": 0, \"2015-08-31 06:00:00+00\": 0, \"2015-08-31 07:00:00+00\": 0, \"2015-08-31 08:00:00+00\": 0, \"2015-08-31 09:00:00+00\": 0, \"2015-08-31 10:00:00+00\": 0, \"2015-08-31 11:00:00+00\": 0, \"2015-08-31 12:00:00+00\": 0, \"2015-08-31 13:00:00+00\": 0, \"2015-08-31 14:00:00+00\": 0, \"2015-08-31 15:00:00+00\": 0, \"2015-08-31 16:00:00+00\": 0, \"2015-08-31 17:00:00+00\": 0, \"2015-08-31 18:00:00+00\": 0, \"2015-08-31 19:00:00+00\": 0, \"2015-08-31 20:00:00+00\": 0, \"2015-08-31 21:00:00+00\": 0, \"2015-08-31 22:00:00+00\": 0, \"2015-08-31 23:00:00+00\": 0, \"2015-09-01 00:00:00+00\": 0, \"2015-09-01 01:00:00+00\": 0, \"2015-09-01 02:00:00+00\": 0, \"2015-09-01 03:00:00+00\": 0, \"2015-09-01 04:00:00+00\": 0, \"2015-09-01 05:00:00+00\": 0, \"2015-09-01 06:00:00+00\": 0, \"2015-09-01 07:00:00+00\": 0, \"2015-09-01 08:00:00+00\": 0, \"2015-09-01 09:00:00+00\": 0, \"2015-09-01 10:00:00+00\": 0, \"2015-09-01 11:00:00+00\": 0, \"2015-09-01 12:00:00+00\": 0, \"2015-09-01 13:00:00+00\": 0, \"2015-09-01 14:00:00+00\": 0, \"2015-09-01 15:00:00+00\": 0, \"2015-09-01 16:00:00+00\": 0, \"2015-09-01 17:00:00+00\": 0, \"2015-09-01 18:00:00+00\": 0, \"2015-09-01 19:00:00+00\": 0, \"2015-09-01 20:00:00+00\": 0, \"2015-09-01 21:00:00+00\": 0, \"2015-09-01 22:00:00+00\": 0, \"2015-09-01 23:00:00+00\": 0, \"2015-09-02 00:00:00+00\": 0, \"2015-09-02 01:00:00+00\": 0, \"2015-09-02 02:00:00+00\": 0, \"2015-09-02 03:00:00+00\": 0, \"2015-09-02 04:00:00+00\": 0, \"2015-09-02 05:00:00+00\": 0, \"2015-09-02 06:00:00+00\": 0, \"2015-09-02 07:00:00+00\": 0, \"2015-09-02 08:00:00+00\": 0, \"2015-09-02 09:00:00+00\": 0, \"2015-09-02 10:00:00+00\": 0, \"2015-09-02 11:00:00+00\": 0, \"2015-09-02 12:00:00+00\": 0, \"2015-09-02 13:00:00+00\": 0, \"2015-09-02 14:00:00+00\": 0, \"2015-09-02 15:00:00+00\": 0, \"2015-09-02 16:00:00+00\": 0, \"2015-09-02 17:00:00+00\": 0, \"2015-09-02 18:00:00+00\": 0, \"2015-09-02 19:00:00+00\": 0, \"2015-09-02 20:00:00+00\": 0, \"2015-09-02 21:00:00+00\": 0, \"2015-09-02 22:00:00+00\": 0, \"2015-09-02 23:00:00+00\": 0, \"2015-09-03 00:00:00+00\": 0, \"2015-09-03 01:00:00+00\": 0, \"2015-09-03 02:00:00+00\": 0, \"2015-09-03 03:00:00+00\": 0, \"2015-09-03 04:00:00+00\": 0, \"2015-09-03 05:00:00+00\": 0, \"2015-09-03 06:00:00+00\": 0, \"2015-09-03 07:00:00+00\": 0, \"2015-09-03 08:00:00+00\": 0, \"2015-09-03 09:00:00+00\": 0, \"2015-09-03 10:00:00+00\": 0, \"2015-09-03 11:00:00+00\": 0, \"2015-09-03 12:00:00+00\": 0, \"2015-09-03 13:00:00+00\": 0, \"2015-09-03 14:00:00+00\": 0, \"2015-09-03 15:00:00+00\": 0, \"2015-09-03 16:00:00+00\": 0, \"2015-09-03 17:00:00+00\": 0, \"2015-09-03 18:00:00+00\": 0, \"2015-09-03 19:00:00+00\": 0, \"2015-09-03 20:00:00+00\": 0, \"2015-09-03 21:00:00+00\": 0, \"2015-09-03 22:00:00+00\": 0, \"2015-09-03 23:00:00+00\": 0, \"2015-09-04 00:00:00+00\": 0, \"2015-09-04 01:00:00+00\": 0, \"2015-09-04 02:00:00+00\": 0, \"2015-09-04 03:00:00+00\": 0, \"2015-09-04 04:00:00+00\": 0, \"2015-09-04 05:00:00+00\": 0, \"2015-09-04 06:00:00+00\": 0, \"2015-09-04 07:00:00+00\": 0, \"2015-09-04 08:00:00+00\": 0, \"2015-09-04 09:00:00+00\": 0, \"2015-09-04 10:00:00+00\": 0, \"2015-09-04 11:00:00+00\": 0, \"2015-09-04 12:00:00+00\": 0, \"2015-09-04 13:00:00+00\": 0, \"2015-09-04 14:00:00+00\": 0, \"2015-09-04 15:00:00+00\": 0, \"2015-09-04 16:00:00+00\": 0, \"2015-09-04 17:00:00+00\": 0, \"2015-09-04 18:00:00+00\": 0, \"2015-09-04 19:00:00+00\": 0, \"2015-09-04 20:00:00+00\": 0, \"2015-09-04 21:00:00+00\": 0, \"2015-09-04 22:00:00+00\": 0, \"2015-09-04 23:00:00+00\": 0, \"2015-09-05 00:00:00+00\": 0, \"2015-09-05 01:00:00+00\": 0, \"2015-09-05 02:00:00+00\": 0, \"2015-09-05 03:00:00+00\": 0, \"2015-09-05 04:00:00+00\": 0, \"2015-09-05 05:00:00+00\": 0, \"2015-09-05 06:00:00+00\": 0, \"2015-09-05 07:00:00+00\": 0, \"2015-09-05 08:00:00+00\": 0, \"2015-09-05 09:00:00+00\": 0, \"2015-09-05 10:00:00+00\": 0, \"2015-09-05 11:00:00+00\": 0, \"2015-09-05 12:00:00+00\": 0, \"2015-09-05 13:00:00+00\": 0, \"2015-09-05 14:00:00+00\": 0, \"2015-09-05 15:00:00+00\": 0, \"2015-09-05 16:00:00+00\": 0, \"2015-09-05 17:00:00+00\": 0, \"2015-09-05 18:00:00+00\": 0, \"2015-09-05 19:00:00+00\": 0, \"2015-09-05 20:00:00+00\": 0, \"2015-09-05 21:00:00+00\": 0, \"2015-09-05 22:00:00+00\": 0, \"2015-09-05 23:00:00+00\": 0, \"2015-09-06 00:00:00+00\": 0, \"2015-09-06 01:00:00+00\": 0, \"2015-09-06 02:00:00+00\": 0, \"2015-09-06 03:00:00+00\": 0, \"2015-09-06 04:00:00+00\": 0, \"2015-09-06 05:00:00+00\": 0, \"2015-09-06 06:00:00+00\": 0, \"2015-09-06 07:00:00+00\": 0, \"2015-09-06 08:00:00+00\": 0, \"2015-09-06 09:00:00+00\": 0, \"2015-09-06 10:00:00+00\": 0, \"2015-09-06 11:00:00+00\": 0, \"2015-09-06 12:00:00+00\": 0, \"2015-09-06 13:00:00+00\": 0, \"2015-09-06 14:00:00+00\": 0, \"2015-09-06 15:00:00+00\": 0, \"2015-09-06 16:00:00+00\": 0, \"2015-09-06 17:00:00+00\": 0, \"2015-09-06 18:00:00+00\": 0, \"2015-09-06 19:00:00+00\": 0, \"2015-09-06 20:00:00+00\": 0, \"2015-09-06 21:00:00+00\": 0, \"2015-09-06 22:00:00+00\": 0, \"2015-09-06 23:00:00+00\": 0, \"2015-09-07 00:00:00+00\": 0, \"2015-09-07 01:00:00+00\": 0, \"2015-09-07 02:00:00+00\": 0, \"2015-09-07 03:00:00+00\": 0, \"2015-09-07 04:00:00+00\": 0, \"2015-09-07 05:00:00+00\": 0, \"2015-09-07 06:00:00+00\": 0, \"2015-09-07 07:00:00+00\": 0, \"2015-09-07 08:00:00+00\": 0, \"2015-09-07 09:00:00+00\": 0, \"2015-09-07 10:00:00+00\": 0, \"2015-09-07 11:00:00+00\": 0, \"2015-09-07 12:00:00+00\": 0, \"2015-09-07 13:00:00+00\": 0, \"2015-09-07 14:00:00+00\": 0, \"2015-09-07 15:00:00+00\": 0, \"2015-09-07 16:00:00+00\": 0, \"2015-09-07 17:00:00+00\": 0, \"2015-09-07 18:00:00+00\": 0, \"2015-09-07 19:00:00+00\": 0, \"2015-09-07 20:00:00+00\": 0, \"2015-09-07 21:00:00+00\": 0, \"2015-09-07 22:00:00+00\": 0, \"2015-09-07 23:00:00+00\": 0, \"2015-09-08 00:00:00+00\": 0, \"2015-09-08 01:00:00+00\": 0, \"2015-09-08 02:00:00+00\": 0, \"2015-09-08 03:00:00+00\": 0, \"2015-09-08 04:00:00+00\": 0, \"2015-09-08 05:00:00+00\": 0, \"2015-09-08 06:00:00+00\": 0, \"2015-09-08 07:00:00+00\": 0, \"2015-09-08 08:00:00+00\": 0, \"2015-09-08 09:00:00+00\": 0, \"2015-09-08 10:00:00+00\": 0, \"2015-09-08 11:00:00+00\": 0, \"2015-09-08 12:00:00+00\": 0, \"2015-09-08 13:00:00+00\": 0, \"2015-09-08 14:00:00+00\": 0, \"2015-09-08 15:00:00+00\": 0, \"2015-09-08 16:00:00+00\": 0, \"2015-09-08 17:00:00+00\": 0, \"2015-09-08 18:00:00+00\": 0, \"2015-09-08 19:00:00+00\": 0, \"2015-09-08 20:00:00+00\": 0, \"2015-09-08 21:00:00+00\": 0, \"2015-09-08 22:00:00+00\": 0, \"2015-09-08 23:00:00+00\": 0, \"2015-09-09 00:00:00+00\": 0, \"2015-09-09 01:00:00+00\": 0, \"2015-09-09 02:00:00+00\": 0, \"2015-09-09 03:00:00+00\": 0, \"2015-09-09 04:00:00+00\": 0, \"2015-09-09 05:00:00+00\": 0, \"2015-09-09 06:00:00+00\": 0, \"2015-09-09 07:00:00+00\": 0, \"2015-09-09 08:00:00+00\": 0, \"2015-09-09 09:00:00+00\": 0, \"2015-09-09 10:00:00+00\": 0, \"2015-09-09 11:00:00+00\": 0, \"2015-09-09 12:00:00+00\": 0, \"2015-09-09 13:00:00+00\": 0, \"2015-09-09 14:00:00+00\": 0, \"2015-09-09 15:00:00+00\": 0, \"2015-09-09 16:00:00+00\": 0, \"2015-09-09 17:00:00+00\": 0, \"2015-09-09 18:00:00+00\": 0, \"2015-09-09 19:00:00+00\": 0, \"2015-09-09 20:00:00+00\": 0, \"2015-09-09 21:00:00+00\": 0, \"2015-09-09 22:00:00+00\": 0, \"2015-09-09 23:00:00+00\": 0, \"2015-09-10 00:00:00+00\": 0, \"2015-09-10 01:00:00+00\": 0, \"2015-09-10 02:00:00+00\": 0, \"2015-09-10 03:00:00+00\": 0, \"2015-09-10 04:00:00+00\": 0, \"2015-09-10 05:00:00+00\": 0, \"2015-09-10 06:00:00+00\": 0, \"2015-09-10 07:00:00+00\": 0, \"2015-09-10 08:00:00+00\": 0, \"2015-09-10 09:00:00+00\": 0, \"2015-09-10 10:00:00+00\": 0, \"2015-09-10 11:00:00+00\": 0, \"2015-09-10 12:00:00+00\": 0, \"2015-09-10 13:00:00+00\": 0, \"2015-09-10 14:00:00+00\": 0, \"2015-09-10 15:00:00+00\": 0, \"2015-09-10 16:00:00+00\": 0, \"2015-09-10 17:00:00+00\": 0, \"2015-09-10 18:00:00+00\": 0, \"2015-09-10 19:00:00+00\": 0, \"2015-09-10 20:00:00+00\": 0, \"2015-09-10 21:00:00+00\": 0, \"2015-09-10 22:00:00+00\": 0, \"2015-09-10 23:00:00+00\": 0, \"2015-09-11 00:00:00+00\": 0, \"2015-09-11 01:00:00+00\": 0, \"2015-09-11 02:00:00+00\": 0, \"2015-09-11 03:00:00+00\": 0, \"2015-09-11 04:00:00+00\": 0, \"2015-09-11 05:00:00+00\": 0, \"2015-09-11 06:00:00+00\": 0, \"2015-09-11 07:00:00+00\": 0, \"2015-09-11 08:00:00+00\": 0, \"2015-09-11 09:00:00+00\": 0, \"2015-09-11 10:00:00+00\": 0, \"2015-09-11 11:00:00+00\": 0, \"2015-09-11 12:00:00+00\": 0, \"2015-09-11 13:00:00+00\": 0, \"2015-09-11 14:00:00+00\": 0, \"2015-09-11 15:00:00+00\": 0, \"2015-09-11 16:00:00+00\": 0, \"2015-09-11 17:00:00+00\": 0, \"2015-09-11 18:00:00+00\": 0, \"2015-09-11 19:00:00+00\": 0, \"2015-09-11 20:00:00+00\": 0, \"2015-09-11 21:00:00+00\": 0, \"2015-09-11 22:00:00+00\": 0, \"2015-09-11 23:00:00+00\": 0, \"2015-09-12 00:00:00+00\": 0, \"2015-09-12 01:00:00+00\": 0, \"2015-09-12 02:00:00+00\": 0, \"2015-09-12 03:00:00+00\": 0, \"2015-09-12 04:00:00+00\": 0, \"2015-09-12 05:00:00+00\": 0, \"2015-09-12 06:00:00+00\": 0, \"2015-09-12 07:00:00+00\": 0, \"2015-09-12 08:00:00+00\": 0, \"2015-09-12 09:00:00+00\": 0, \"2015-09-12 10:00:00+00\": 0, \"2015-09-12 11:00:00+00\": 0, \"2015-09-12 12:00:00+00\": 0, \"2015-09-12 13:00:00+00\": 0, \"2015-09-12 14:00:00+00\": 0, \"2015-09-12 15:00:00+00\": 0, \"2015-09-12 16:00:00+00\": 0, \"2015-09-12 17:00:00+00\": 0, \"2015-09-12 18:00:00+00\": 0, \"2015-09-12 19:00:00+00\": 0, \"2015-09-12 20:00:00+00\": 0, \"2015-09-12 21:00:00+00\": 0, \"2015-09-12 22:00:00+00\": 0, \"2015-09-12 23:00:00+00\": 0, \"2015-09-13 00:00:00+00\": 0, \"2015-09-13 01:00:00+00\": 0, \"2015-09-13 02:00:00+00\": 0, \"2015-09-13 03:00:00+00\": 0, \"2015-09-13 04:00:00+00\": 0, \"2015-09-13 05:00:00+00\": 0, \"2015-09-13 06:00:00+00\": 0, \"2015-09-13 07:00:00+00\": 0, \"2015-09-13 08:00:00+00\": 0, \"2015-09-13 09:00:00+00\": 0, \"2015-09-13 10:00:00+00\": 0, \"2015-09-13 11:00:00+00\": 0, \"2015-09-13 12:00:00+00\": 0, \"2015-09-13 13:00:00+00\": 0, \"2015-09-13 14:00:00+00\": 0, \"2015-09-13 15:00:00+00\": 0, \"2015-09-13 16:00:00+00\": 0, \"2015-09-13 17:00:00+00\": 0, \"2015-09-13 18:00:00+00\": 0, \"2015-09-13 19:00:00+00\": 0, \"2015-09-13 20:00:00+00\": 0, \"2015-09-13 21:00:00+00\": 0, \"2015-09-13 22:00:00+00\": 0, \"2015-09-13 23:00:00+00\": 0, \"2015-09-14 00:00:00+00\": 0, \"2015-09-14 01:00:00+00\": 0, \"2015-09-14 02:00:00+00\": 0, \"2015-09-14 03:00:00+00\": 0, \"2015-09-14 04:00:00+00\": 0, \"2015-09-14 05:00:00+00\": 0, \"2015-09-14 06:00:00+00\": 0, \"2015-09-14 07:00:00+00\": 0, \"2015-09-14 08:00:00+00\": 0, \"2015-09-14 09:00:00+00\": 0, \"2015-09-14 10:00:00+00\": 0, \"2015-09-14 11:00:00+00\": 0, \"2015-09-14 12:00:00+00\": 0, \"2015-09-14 13:00:00+00\": 0, \"2015-09-14 14:00:00+00\": 0, \"2015-09-14 15:00:00+00\": 0, \"2015-09-14 16:00:00+00\": 0, \"2015-09-14 17:00:00+00\": 0, \"2015-09-14 18:00:00+00\": 0, \"2015-09-14 19:00:00+00\": 0, \"2015-09-14 20:00:00+00\": 0, \"2015-09-14 21:00:00+00\": 0, \"2015-09-14 22:00:00+00\": 0, \"2015-09-14 23:00:00+00\": 0, \"2015-09-15 00:00:00+00\": 0, \"2015-09-15 01:00:00+00\": 0, \"2015-09-15 02:00:00+00\": 0, \"2015-09-15 03:00:00+00\": 0, \"2015-09-15 04:00:00+00\": 0, \"2015-09-15 05:00:00+00\": 0, \"2015-09-15 06:00:00+00\": 0, \"2015-09-15 07:00:00+00\": 0, \"2015-09-15 08:00:00+00\": 0, \"2015-09-15 09:00:00+00\": 0, \"2015-09-15 10:00:00+00\": 0, \"2015-09-15 11:00:00+00\": 0, \"2015-09-15 12:00:00+00\": 0, \"2015-09-15 13:00:00+00\": 0, \"2015-09-15 14:00:00+00\": 0, \"2015-09-15 15:00:00+00\": 0, \"2015-09-15 16:00:00+00\": 0, \"2015-09-15 17:00:00+00\": 0, \"2015-09-15 18:00:00+00\": 0, \"2015-09-15 19:00:00+00\": 0, \"2015-09-15 20:00:00+00\": 0, \"2015-09-15 21:00:00+00\": 0, \"2015-09-15 22:00:00+00\": 0, \"2015-09-15 23:00:00+00\": 0, \"2015-09-16 00:00:00+00\": 0, \"2015-09-16 01:00:00+00\": 0, \"2015-09-16 02:00:00+00\": 0, \"2015-09-16 03:00:00+00\": 0, \"2015-09-16 04:00:00+00\": 0, \"2015-09-16 05:00:00+00\": 0, \"2015-09-16 06:00:00+00\": 0, \"2015-09-16 07:00:00+00\": 0, \"2015-09-16 08:00:00+00\": 0, \"2015-09-16 09:00:00+00\": 0, \"2015-09-16 10:00:00+00\": 0, \"2015-09-16 11:00:00+00\": 0, \"2015-09-16 12:00:00+00\": 0, \"2015-09-16 13:00:00+00\": 0, \"2015-09-16 14:00:00+00\": 0, \"2015-09-16 15:00:00+00\": 0, \"2015-09-16 16:00:00+00\": 0, \"2015-09-16 17:00:00+00\": 0, \"2015-09-16 18:00:00+00\": 0, \"2015-09-16 19:00:00+00\": 0, \"2015-09-16 20:00:00+00\": 1, \"2015-09-16 21:00:00+00\": 0, \"2015-09-16 22:00:00+00\": 0, \"2015-09-16 23:00:00+00\": 3, \"2015-09-17 00:00:00+00\": 0, \"2015-09-17 01:00:00+00\": 0, \"2015-09-17 02:00:00+00\": 0, \"2015-09-17 03:00:00+00\": 0, \"2015-09-17 04:00:00+00\": 0, \"2015-09-17 05:00:00+00\": 0, \"2015-09-17 06:00:00+00\": 0, \"2015-09-17 07:00:00+00\": 0, \"2015-09-17 08:00:00+00\": 0, \"2015-09-17 09:00:00+00\": 0, \"2015-09-17 10:00:00+00\": 0, \"2015-09-17 11:00:00+00\": 0, \"2015-09-17 12:00:00+00\": 0, \"2015-09-17 13:00:00+00\": 0, \"2015-09-17 14:00:00+00\": 0, \"2015-09-17 15:00:00+00\": 0, \"2015-09-17 16:00:00+00\": 0, \"2015-09-17 17:00:00+00\": 0, \"2015-09-17 18:00:00+00\": 2, \"2015-09-17 19:00:00+00\": 3, \"2015-09-17 20:00:00+00\": 0, \"2015-09-17 21:00:00+00\": 0, \"2015-09-17 22:00:00+00\": 0, \"2015-09-17 23:00:00+00\": 0, \"2015-09-18 00:00:00+00\": 0, \"2015-09-18 01:00:00+00\": 0, \"2015-09-18 02:00:00+00\": 0, \"2015-09-18 03:00:00+00\": 0, \"2015-09-18 04:00:00+00\": 0, \"2015-09-18 05:00:00+00\": 0, \"2015-09-18 06:00:00+00\": 0, \"2015-09-18 07:00:00+00\": 0, \"2015-09-18 08:00:00+00\": 0, \"2015-09-18 09:00:00+00\": 0, \"2015-09-18 10:00:00+00\": 0, \"2015-09-18 11:00:00+00\": 0, \"2015-09-18 12:00:00+00\": 0, \"2015-09-18 13:00:00+00\": 0, \"2015-09-18 14:00:00+00\": 0, \"2015-09-18 15:00:00+00\": 0, \"2015-09-18 16:00:00+00\": 0, \"2015-09-18 17:00:00+00\": 0, \"2015-09-18 18:00:00+00\": 0, \"2015-09-18 19:00:00+00\": 0, \"2015-09-18 20:00:00+00\": 0, \"2015-09-18 21:00:00+00\": 0, \"2015-09-18 22:00:00+00\": 0, \"2015-09-18 23:00:00+00\": 0, \"2015-09-19 00:00:00+00\": 0, \"2015-09-19 01:00:00+00\": 0, \"2015-09-19 02:00:00+00\": 0, \"2015-09-19 03:00:00+00\": 0, \"2015-09-19 04:00:00+00\": 0, \"2015-09-19 05:00:00+00\": 0, \"2015-09-19 06:00:00+00\": 0, \"2015-09-19 07:00:00+00\": 0, \"2015-09-19 08:00:00+00\": 0, \"2015-09-19 09:00:00+00\": 0, \"2015-09-19 10:00:00+00\": 0, \"2015-09-19 11:00:00+00\": 0, \"2015-09-19 12:00:00+00\": 0, \"2015-09-19 13:00:00+00\": 0, \"2015-09-19 14:00:00+00\": 0, \"2015-09-19 15:00:00+00\": 0, \"2015-09-19 16:00:00+00\": 0, \"2015-09-19 17:00:00+00\": 0, \"2015-09-19 18:00:00+00\": 0, \"2015-09-19 19:00:00+00\": 0, \"2015-09-19 20:00:00+00\": 0, \"2015-09-19 21:00:00+00\": 0, \"2015-09-19 22:00:00+00\": 0, \"2015-09-19 23:00:00+00\": 0, \"2015-09-20 00:00:00+00\": 0, \"2015-09-20 01:00:00+00\": 0, \"2015-09-20 02:00:00+00\": 0, \"2015-09-20 03:00:00+00\": 0, \"2015-09-20 04:00:00+00\": 0, \"2015-09-20 05:00:00+00\": 0, \"2015-09-20 06:00:00+00\": 0, \"2015-09-20 07:00:00+00\": 0, \"2015-09-20 08:00:00+00\": 0, \"2015-09-20 09:00:00+00\": 0, \"2015-09-20 10:00:00+00\": 0, \"2015-09-20 11:00:00+00\": 0, \"2015-09-20 12:00:00+00\": 0, \"2015-09-20 13:00:00+00\": 0, \"2015-09-20 14:00:00+00\": 0, \"2015-09-20 15:00:00+00\": 0, \"2015-09-20 16:00:00+00\": 0, \"2015-09-20 17:00:00+00\": 0, \"2015-09-20 18:00:00+00\": 0, \"2015-09-20 19:00:00+00\": 0, \"2015-09-20 20:00:00+00\": 0, \"2015-09-20 21:00:00+00\": 0, \"2015-09-20 22:00:00+00\": 0, \"2015-09-20 23:00:00+00\": 0, \"2015-09-21 00:00:00+00\": 0, \"2015-09-21 01:00:00+00\": 0, \"2015-09-21 02:00:00+00\": 0, \"2015-09-21 03:00:00+00\": 0, \"2015-09-21 04:00:00+00\": 0, \"2015-09-21 05:00:00+00\": 0, \"2015-09-21 06:00:00+00\": 0, \"2015-09-21 07:00:00+00\": 0, \"2015-09-21 08:00:00+00\": 0, \"2015-09-21 09:00:00+00\": 0, \"2015-09-21 10:00:00+00\": 0, \"2015-09-21 11:00:00+00\": 0, \"2015-09-21 12:00:00+00\": 0, \"2015-09-21 13:00:00+00\": 0, \"2015-09-21 14:00:00+00\": 0, \"2015-09-21 15:00:00+00\": 0, \"2015-09-21 16:00:00+00\": 0, \"2015-09-21 17:00:00+00\": 0, \"2015-09-21 18:00:00+00\": 0, \"2015-09-21 19:00:00+00\": 0, \"2015-09-21 20:00:00+00\": 0, \"2015-09-21 21:00:00+00\": 0, \"2015-09-21 22:00:00+00\": 1, \"2015-09-21 23:00:00+00\": 0, \"2015-09-22 00:00:00+00\": 0, \"2015-09-22 01:00:00+00\": 0, \"2015-09-22 02:00:00+00\": 0, \"2015-09-22 03:00:00+00\": 0, \"2015-09-22 04:00:00+00\": 0, \"2015-09-22 05:00:00+00\": 0, \"2015-09-22 06:00:00+00\": 0, \"2015-09-22 07:00:00+00\": 0, \"2015-09-22 08:00:00+00\": 0, \"2015-09-22 09:00:00+00\": 0, \"2015-09-22 10:00:00+00\": 0, \"2015-09-22 11:00:00+00\": 0, \"2015-09-22 12:00:00+00\": 0, \"2015-09-22 13:00:00+00\": 0, \"2015-09-22 14:00:00+00\": 0, \"2015-09-22 15:00:00+00\": 0, \"2015-09-22 16:00:00+00\": 0, \"2015-09-22 17:00:00+00\": 0, \"2015-09-22 18:00:00+00\": 0, \"2015-09-22 19:00:00+00\": 0, \"2015-09-22 20:00:00+00\": 0, \"2015-09-22 21:00:00+00\": 0, \"2015-09-22 22:00:00+00\": 0, \"2015-09-22 23:00:00+00\": 0, \"2015-09-23 00:00:00+00\": 0, \"2015-09-23 01:00:00+00\": 0, \"2015-09-23 02:00:00+00\": 0, \"2015-09-23 03:00:00+00\": 0, \"2015-09-23 04:00:00+00\": 0, \"2015-09-23 05:00:00+00\": 0, \"2015-09-23 06:00:00+00\": 0, \"2015-09-23 07:00:00+00\": 0, \"2015-09-23 08:00:00+00\": 0, \"2015-09-23 09:00:00+00\": 0, \"2015-09-23 10:00:00+00\": 0, \"2015-09-23 11:00:00+00\": 0, \"2015-09-23 12:00:00+00\": 0, \"2015-09-23 13:00:00+00\": 0, \"2015-09-23 14:00:00+00\": 0, \"2015-09-23 15:00:00+00\": 0, \"2015-09-23 16:00:00+00\": 0, \"2015-09-23 17:00:00+00\": 0, \"2015-09-23 18:00:00+00\": 0, \"2015-09-23 19:00:00+00\": 0, \"2015-09-23 20:00:00+00\": 0, \"2015-09-23 21:00:00+00\": 0, \"2015-09-23 22:00:00+00\": 0, \"2015-09-23 23:00:00+00\": 0, \"2015-09-24 00:00:00+00\": 0, \"2015-09-24 01:00:00+00\": 0, \"2015-09-24 02:00:00+00\": 0, \"2015-09-24 03:00:00+00\": 0, \"2015-09-24 04:00:00+00\": 0, \"2015-09-24 05:00:00+00\": 0, \"2015-09-24 06:00:00+00\": 0, \"2015-09-24 07:00:00+00\": 0, \"2015-09-24 08:00:00+00\": 0, \"2015-09-24 09:00:00+00\": 0, \"2015-09-24 10:00:00+00\": 0, \"2015-09-24 11:00:00+00\": 0, \"2015-09-24 12:00:00+00\": 0, \"2015-09-24 13:00:00+00\": 0, \"2015-09-24 14:00:00+00\": 0, \"2015-09-24 15:00:00+00\": 0, \"2015-09-24 16:00:00+00\": 0, \"2015-09-24 17:00:00+00\": 0, \"2015-09-24 18:00:00+00\": 0, \"2015-09-24 19:00:00+00\": 0, \"2015-09-24 20:00:00+00\": 0, \"2015-09-24 21:00:00+00\": 0, \"2015-09-24 22:00:00+00\": 0, \"2015-09-24 23:00:00+00\": 0, \"2015-09-25 00:00:00+00\": 0, \"2015-09-25 01:00:00+00\": 0, \"2015-09-25 02:00:00+00\": 0, \"2015-09-25 03:00:00+00\": 0, \"2015-09-25 04:00:00+00\": 0, \"2015-09-25 05:00:00+00\": 0, \"2015-09-25 06:00:00+00\": 0, \"2015-09-25 07:00:00+00\": 0, \"2015-09-25 08:00:00+00\": 0, \"2015-09-25 09:00:00+00\": 0, \"2015-09-25 10:00:00+00\": 0, \"2015-09-25 11:00:00+00\": 0, \"2015-09-25 12:00:00+00\": 0, \"2015-09-25 13:00:00+00\": 0, \"2015-09-25 14:00:00+00\": 0, \"2015-09-25 15:00:00+00\": 0, \"2015-09-25 16:00:00+00\": 0, \"2015-09-25 17:00:00+00\": 0, \"2015-09-25 18:00:00+00\": 0, \"2015-09-25 19:00:00+00\": 0, \"2015-09-25 20:00:00+00\": 0, \"2015-09-25 21:00:00+00\": 0, \"2015-09-25 22:00:00+00\": 0, \"2015-09-25 23:00:00+00\": 0, \"2015-09-26 00:00:00+00\": 0, \"2015-09-26 01:00:00+00\": 0, \"2015-09-26 02:00:00+00\": 0, \"2015-09-26 03:00:00+00\": 0, \"2015-09-26 04:00:00+00\": 0, \"2015-09-26 05:00:00+00\": 0, \"2015-09-26 06:00:00+00\": 0, \"2015-09-26 07:00:00+00\": 0, \"2015-09-26 08:00:00+00\": 0, \"2015-09-26 09:00:00+00\": 0, \"2015-09-26 10:00:00+00\": 0, \"2015-09-26 11:00:00+00\": 0, \"2015-09-26 12:00:00+00\": 0, \"2015-09-26 13:00:00+00\": 0, \"2015-09-26 14:00:00+00\": 0, \"2015-09-26 15:00:00+00\": 0, \"2015-09-26 16:00:00+00\": 0, \"2015-09-26 17:00:00+00\": 0, \"2015-09-26 18:00:00+00\": 0, \"2015-09-26 19:00:00+00\": 0, \"2015-09-26 20:00:00+00\": 0, \"2015-09-26 21:00:00+00\": 0, \"2015-09-26 22:00:00+00\": 0, \"2015-09-26 23:00:00+00\": 0, \"2015-09-27 00:00:00+00\": 0, \"2015-09-27 01:00:00+00\": 0, \"2015-09-27 02:00:00+00\": 0, \"2015-09-27 03:00:00+00\": 0, \"2015-09-27 04:00:00+00\": 0, \"2015-09-27 05:00:00+00\": 0, \"2015-09-27 06:00:00+00\": 0, \"2015-09-27 07:00:00+00\": 0, \"2015-09-27 08:00:00+00\": 0, \"2015-09-27 09:00:00+00\": 0, \"2015-09-27 10:00:00+00\": 0, \"2015-09-27 11:00:00+00\": 0, \"2015-09-27 12:00:00+00\": 0, \"2015-09-27 13:00:00+00\": 0, \"2015-09-27 14:00:00+00\": 0, \"2015-09-27 15:00:00+00\": 0, \"2015-09-27 16:00:00+00\": 0, \"2015-09-27 17:00:00+00\": 0, \"2015-09-27 18:00:00+00\": 0, \"2015-09-27 19:00:00+00\": 0, \"2015-09-27 20:00:00+00\": 0, \"2015-09-27 21:00:00+00\": 0, \"2015-09-27 22:00:00+00\": 0, \"2015-09-27 23:00:00+00\": 0, \"2015-09-28 00:00:00+00\": 0, \"2015-09-28 01:00:00+00\": 0, \"2015-09-28 02:00:00+00\": 0, \"2015-09-28 03:00:00+00\": 0, \"2015-09-28 04:00:00+00\": 0, \"2015-09-28 05:00:00+00\": 0, \"2015-09-28 06:00:00+00\": 0, \"2015-09-28 07:00:00+00\": 0, \"2015-09-28 08:00:00+00\": 0, \"2015-09-28 09:00:00+00\": 0, \"2015-09-28 10:00:00+00\": 0, \"2015-09-28 11:00:00+00\": 0, \"2015-09-28 12:00:00+00\": 0, \"2015-09-28 13:00:00+00\": 0, \"2015-09-28 14:00:00+00\": 0, \"2015-09-28 15:00:00+00\": 0, \"2015-09-28 16:00:00+00\": 0, \"2015-09-28 17:00:00+00\": 0, \"2015-09-28 18:00:00+00\": 0, \"2015-09-28 19:00:00+00\": 0, \"2015-09-28 20:00:00+00\": 0, \"2015-09-28 21:00:00+00\": 0, \"2015-09-28 22:00:00+00\": 0, \"2015-09-28 23:00:00+00\": 0, \"2015-09-29 00:00:00+00\": 0, \"2015-09-29 01:00:00+00\": 0, \"2015-09-29 02:00:00+00\": 0, \"2015-09-29 03:00:00+00\": 0, \"2015-09-29 04:00:00+00\": 0, \"2015-09-29 05:00:00+00\": 0, \"2015-09-29 06:00:00+00\": 0, \"2015-09-29 07:00:00+00\": 0, \"2015-09-29 08:00:00+00\": 0, \"2015-09-29 09:00:00+00\": 0, \"2015-09-29 10:00:00+00\": 0, \"2015-09-29 11:00:00+00\": 0, \"2015-09-29 12:00:00+00\": 0, \"2015-09-29 13:00:00+00\": 0, \"2015-09-29 14:00:00+00\": 0, \"2015-09-29 15:00:00+00\": 0, \"2015-09-29 16:00:00+00\": 0, \"2015-09-29 17:00:00+00\": 0, \"2015-09-29 18:00:00+00\": 0, \"2015-09-29 19:00:00+00\": 0, \"2015-09-29 20:00:00+00\": 0, \"2015-09-29 21:00:00+00\": 0, \"2015-09-29 22:00:00+00\": 0, \"2015-09-29 23:00:00+00\": 0, \"2015-09-30 00:00:00+00\": 0, \"2015-09-30 01:00:00+00\": 0, \"2015-09-30 02:00:00+00\": 0, \"2015-09-30 03:00:00+00\": 0, \"2015-09-30 04:00:00+00\": 0, \"2015-09-30 05:00:00+00\": 0, \"2015-09-30 06:00:00+00\": 0 }];\n    });\n    server.get('/api/v2/analytics/entries_by_day', function (request) {\n      assert.ok(true, 'called entries by day');\n      assert.equal(request.queryParams.location_id, '1', 'should pass in correct location id');\n\n      var today = moment().endOf('day').utc().format();\n      var thirtyDaysAgo = moment().startOf('day').subtract(30, 'days').utc().format();\n      assert.equal(moment(request.queryParams.start_time).utc().format(), thirtyDaysAgo, 'should show correct entries by day start_time');\n      assert.equal(moment(request.queryParams.end_time).utc().format(), today, 'should show correct entries by day end_time');\n\n      return [200, { \"Content-Type\": \"application/json\" }, { \"2015-08-30 07:00:00+00\": 0, \"2015-08-31 07:00:00+00\": 0, \"2015-09-01 07:00:00+00\": 0, \"2015-09-02 07:00:00+00\": 0, \"2015-09-03 07:00:00+00\": 0, \"2015-09-04 07:00:00+00\": 0, \"2015-09-05 07:00:00+00\": 0, \"2015-09-06 07:00:00+00\": 0, \"2015-09-07 07:00:00+00\": 0, \"2015-09-08 07:00:00+00\": 0, \"2015-09-09 07:00:00+00\": 0, \"2015-09-10 07:00:00+00\": 0, \"2015-09-11 07:00:00+00\": 0, \"2015-09-12 07:00:00+00\": 0, \"2015-09-13 07:00:00+00\": 0, \"2015-09-14 07:00:00+00\": 0, \"2015-09-15 07:00:00+00\": 0, \"2015-09-16 07:00:00+00\": 4, \"2015-09-17 07:00:00+00\": 5, \"2015-09-18 07:00:00+00\": 0, \"2015-09-19 07:00:00+00\": 0, \"2015-09-20 07:00:00+00\": 0, \"2015-09-21 07:00:00+00\": 1, \"2015-09-22 07:00:00+00\": 0, \"2015-09-23 07:00:00+00\": 0, \"2015-09-24 07:00:00+00\": 0, \"2015-09-25 07:00:00+00\": 0, \"2015-09-26 07:00:00+00\": 0, \"2015-09-27 07:00:00+00\": 0, \"2015-09-28 07:00:00+00\": 0, \"2015-09-29 07:00:00+00\": 0 }];\n    });\n\n    visit('/analytics');\n\n    andThen(function () {\n      // let xRange = moment('2015-09-29 07:00:00+00').utc().subtract(2, 'days').format('MMM DD');\n      assert.equal(currentPath(), 'protected.analytics.index', 'goes to analytics page');\n      assert.ok(find('.js-analytics-header').length, 'the analytics page is rendering');\n      //TODO: figure out why circleci is rendering these different than local test environment\n      // assert.equal(\n      //   find('.js-visitory-history-graph .nf-y-axis-tick').last().find('text').text(),\n      //   '5',\n      //   'the top range of the visitor history y-axis is correctly labeled'\n      // );\n      // assert.equal(\n      //   find('.js-visitory-history-graph .nf-x-axis-tick').last().find('text').text(),\n      //   xRange,\n      //   'the top range of the visitor history x-axis is correctly labeled'\n      // );\n      // assert.equal(\n      //   find('.js-day-of-week-average .nf-y-axis-tick').last().find('text').text(),\n      //   '1.4',\n      //   'the top range of the visitor history y-axis is correctly labeled'\n      // );\n      // assert.equal(\n      //   find('.js-day-of-week-average .nf-x-axis-tick').last().find('text').text(),\n      //   'Sat',\n      //   'the top range of the visitor history x-axis is correctly labeled'\n      // );\n      // assert.equal(\n      //   find('.js-time-of-day-average .nf-y-axis-tick').last().find('text').text(),\n      //   '0.1',\n      //   'the top range of the visitor history y-axis is correctly labeled'\n      // );\n      // assert.equal(\n      //   find('.js-time-of-day-average .nf-x-axis-tick').last().find('text').text(),\n      //   '23',\n      //   'the top range of the visitor history x-axis is correctly labeled'\n      // );\n      assert.equal(find('.js-leaderboard-employee-name').first().text().trim(), 'Marquise McDermott', 'Marquise is the Top Dawg');\n      assert.equal(find('.js-leaderboard-employee-count').first().text().trim(), '5', 'Marquise has the right count');\n      assert.equal(find('.js-leaderboard-employee-name').last().text().trim(), 'Miss Mara Feest', 'Miss Mara Feest is second best');\n      assert.equal(find('.js-leaderboard-employee-count').last().text().trim(), '4', 'Miss Mara has the right count');\n    });\n  });\n\n  qunit.test('the analytics datepicker should always reset itself to the correct start month', function (assert) {\n    assert.expect(4);\n\n    visit('/analytics');\n\n    click('.js-datepicker-open');\n\n    var lastMonth = moment().startOf('day').subtract(30, 'days').utc().format('MMMM');\n    var monthBeforeLast = moment().startOf('day').subtract(60, 'days').utc().format('MMMM');\n\n    andThen(function () {\n      assert.equal(find('.js-first-month-header').text().trim(), lastMonth, 'Header shows correct start month');\n      click('.js-previous-month-button');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-first-month-header').text().trim(), monthBeforeLast, 'Header shows correct start month after going back a month');\n      //click away to focusOut of calendar\n      click('.js-reset-zoom');\n    });\n\n    click('.js-datepicker-open');\n\n    andThen(function () {\n      assert.equal(find('.js-first-month-header').text().trim(), lastMonth, 'Header shows correctly reset start month');\n    });\n\n    //now click last 30-60 day button and see if the startMonth is set correctly\n    click('.js-last-30-to-60-days');\n    click('.js-datepicker-open');\n\n    andThen(function () {\n      assert.equal(find('.js-first-month-header').text().trim(), monthBeforeLast, 'Header shows correctly reset start month');\n    });\n  });\n\n});","define('garaje/tests/acceptance/analytics-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/analytics-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/analytics-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/application-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/ember-simple-auth'], function (Ember, qunit, startApp, Pretender, FactoryGuy, ember_simple_auth) {\n\n  'use strict';\n\n  var application, server;\n\n  qunit.module('Application: current admin', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              config_id: 1,\n              company_id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Jacob Inc',\n              email: 'foo@example.com',\n              slack_connected: false,\n              slack_team_name: null,\n              hipchat_connected: false,\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          assert.ok(true, 'requested current admin');\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n\n        this.get('/api/v1/entries', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"entries\": [], \"meta\": { \"all_total\": 0, \"total\": 0 } }];\n        });\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('authenticated users get redirected to the dashboard route if they have access to dashboard', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: ['dashboard']\n        }\n      }];\n    });\n\n    visit('/');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.dashboard.index', 'redirected to dashboard route');\n    });\n  });\n\n  qunit.test('unauthenticated users dont get redirected to the location route', function (assert) {\n    assert.expect(1);\n\n    ember_simple_auth.invalidateSession(application);\n\n    visit('/');\n\n    andThen(function () {\n      assert.notEqual(currentPath(), 'protected.settings.location.index', 'not redirected to location route');\n    });\n  });\n\n  qunit.skip('skipping for now, fix later -- users who suddenly become unauthenticated get redirected to login to reauth', function (assert) {\n    assert.expect(1);\n\n    var origHandler = Ember['default'].Test.adapter.exception;\n\n    visit('/');\n\n    andThen(function () {\n      server.get('/api/v1/entries/calendar', function (request) {\n        return [401, { \"Content-Type\": \"application/json\" }, 'Not Authorized'];\n      });\n    });\n\n    // override the default test adapter exception handler\n    // which shits an assertion even when we don't need it\n    // Ember.Test.adapter.exception = Ember.K;\n\n    Ember['default'].Test.adapter.exception = Ember['default'].K;\n\n    click('.js-dashboard-go-forward-a-day');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'login', 'it goes to the login page');\n      Ember['default'].Test.adapter.exception = origHandler;\n    });\n  });\n\n  qunit.test('logging out', function (assert) {\n    assert.expect(2);\n\n    visit('/');\n\n    click('ic-menu-item:contains(Log Out)');\n\n    andThen(function () {\n      var controller = application.__container__.lookup('controller:application');\n      assert.ok(controller.get('envoyIframeUrl').indexOf('/users/sign_out?access_token=') > -1, 'it sets the iframe url to the sign out page');\n    });\n  });\n\n});","define('garaje/tests/acceptance/application-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/application-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/application-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/badge-preview-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/fixtures/badge', 'garaje/tests/helpers/select', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, __dep5__, select, stubConfirm) {\n\n  'use strict';\n\n  var App, server, controller, locations;\n\n  qunit.module('Acceptance: Badge preview', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      var badge = FactoryGuy['default'].build('badge', {\n        preview_html: '\\n        var company = \"none\";\\n        var badgeShowPhoto = \"none\";\\n        var badgeExtraField1 = \"none\";\\n        var badgeExtraField2 = \"none\";\\n        var badgeExtraField1Label = \"none\";\\n        var badgeExtraField2Label = \"none\";\\n        var badgeFooter = \"none\";\\n        var badgeNotes = \"none\";\\n        var badgeCSS = \"\";\\n      '\n      })['badge'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        admin: {\n          id: admin.id\n        },\n        badge: {\n          id: badge.id\n        },\n        config: {\n          id: 1\n        },\n        printer: {\n          id: 1\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['custom_badge']\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/badges/:id', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { badge: badge }];\n        });\n        this.put('/api/v1/badges/:id', function (request) {\n          var badge = JSON.parse(request.requestBody).badge;\n          badge.id = request.params.id;\n          return [200, { 'Content-Type': 'application/json' }, { badge: badge }];\n        });\n        this.get('/api/v1/configs/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: 1,\n              location_id: 1,\n              slideshows: [],\n              integrations: [],\n              custom_fields: [{ 'label': 'Your Company' }, { 'label': 'Your Car' }]\n            }\n          }];\n        });\n        this.get('/api/v1/employees', function () {\n          return [200, { 'Content-Type': 'application/json' }, { employees: [], meta: { total: 1 } }];\n        });\n        this.get('/api/v1/printers/:id', function (request) {\n          var printer = {\n            id: request.params.id,\n            ip: '123.123.123.123',\n            enabled: true,\n            location_id: 1\n          };\n          return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('previewing a badge with custom configuration', function (assert) {\n    assert.expect(10);\n    visit('/settings/badge');\n\n    var badge = App.__container__.lookup('controller:badge');\n\n    select['default']('.js-branding', 'Company');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var company = \"Acme\";') > -1, 'company variable was replaced');\n    });\n\n    select['default']('.js-photo', 'Hide');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeShowPhoto = \"false\";') > -1, 'photo variable was replaced');\n    });\n\n    select['default']('.js-field1', 'None');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeExtraField1 = \"none\";') > -1, 'badgeExtraField1 variable was replaced');\n    });\n\n    select['default']('.js-field2', 'None');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeExtraField2 = \"none\";') > -1, 'badgeExtraField2 variable was replaced');\n    });\n\n    select['default']('.js-field1', 'Your Company');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeExtraField1 = \"field Your Company\";') > -1, 'badgeExtraField1 variable was replaced');\n    });\n\n    select['default']('.js-field2', 'Your Car');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeExtraField2 = \"field Your Car\";') > -1, 'badgeExtraField2 variable was replaced');\n    });\n\n    click('.js-label1');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeExtraField1Label = \"false\";') > -1, 'badgeExtraField1Label variable was replaced');\n    });\n\n    click('.js-label2');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeExtraField2Label = \"false\";') > -1, 'badgeExtraField2Label variable was replaced');\n    });\n\n    click('.js-time-label');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeFooter = \"time_of_entry\";') > -1, 'badgeFooter variable was replaced');\n    });\n\n    fillIn('.js-custom-message', 'i am cool');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeNotes = \"i am cool\";') > -1, 'badgeNotes variable was replaced');\n    });\n\n    click('.js-badge-configuration .btn:contains(Save Badge)');\n  });\n\n  qunit.test('previewing a badge with custom css configuration', function (assert) {\n    assert.expect(13);\n\n    visit('/settings/badge');\n\n    var badge = App.__container__.lookup('controller:badge');\n\n    andThen(function () {\n      assert.ok(!find('.js-css .CodeMirror').length, 'css field is not shown yet');\n      click('.js-css .btn:contains(Enable)');\n    });\n\n    // Cancel\n    andThen(function () {\n      assert.ok(find('.js-css .CodeMirror').length, 'css field is now displayed');\n      click('.js-css .btn.btn--cancel');\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-css .CodeMirror').length, 'css field is closed');\n      click('.js-css .btn:contains(Enable)');\n    });\n\n    // Preview\n    andThen(function () {\n      assert.ok(find('.js-css .CodeMirror').length, 'css field is now displayed');\n\n      var cssEditor = find('.js-css .CodeMirror')[0].CodeMirror;\n      Ember['default'].run(function () {\n        cssEditor.setValue('body { background-color: red; }');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeCSS = \"body { background-color: red; }\";') > -1, 'badgeCSS variable updated');\n    });\n\n    // Reset\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-css .btn--cancel');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeCSS = \"body {}\";') > -1, 'badgeCSS variable reset');\n      click('.js-css .btn:contains(Enable)');\n    });\n\n    // Save\n    andThen(function () {\n      assert.ok(find('.js-css .CodeMirror').length, 'css field is now displayed');\n      var cssEditor = find('.js-css .CodeMirror')[0].CodeMirror;\n      Ember['default'].run(function () {\n        cssEditor.setValue('body { background-color: blue; }');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var badgeCSS = \"body { background-color: blue; }\";') > -1, 'badgeCSS variable updated');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-css .CodeMirror').length, 'css field is now displayed');\n      click('.js-css .btn:contains(Save)');\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-css .CodeMirror').length, 'css field is not shown yet');\n      assert.ok(find('.js-css .btn:contains(Edit)').length, 'shows Edit instead of Enable');\n      assert.ok(!find('.js-css .btn:contains(Enable)').length, 'shows Edit instead of Enable');\n    });\n  });\n\n  qunit.test('unsaved changes to badge is rolled back when going off then coming back', function (assert) {\n    assert.expect(21);\n\n    visit('/settings/badge');\n\n    select['default']('.js-branding', 'Company');\n\n    // go off\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(iPad)');\n      });\n    });\n\n    // come back\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.equal(find('.js-branding').val(), 'logo', 'reverted back to logo');\n      assert.equal(find('.js-photo').val(), 'true', 'original photo value');\n    });\n\n    select['default']('.js-photo', 'Hide');\n\n    andThen(function () {\n      // go off\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(iPad)');\n      });\n    });\n\n    // come back\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.equal(find('.js-photo').val(), 'true', 'reverted back to original value');\n      assert.equal(find('.js-field1').val(), 'field Your Company', 'original field1 value');\n    });\n\n    select['default']('.js-field1', 'Your Car');\n\n    andThen(function () {\n      // go off\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(iPad)');\n      });\n    });\n\n    // come back\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.equal(find('.js-field1').val(), 'field Your Company', 'reverted back to original value');\n      assert.equal(find('.js-field2').val(), 'field Your Car', 'original field2 value');\n    });\n\n    select['default']('.js-field2', 'Your Company');\n\n    andThen(function () {\n      // go off\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(iPad)');\n      });\n    });\n\n    // come back\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.equal(find('.js-field2').val(), 'field Your Car', 'reverted back to original value');\n      assert.ok(find('.js-label1').prop('checked'), 'original label1 value');\n    });\n\n    fillIn('.js-label1', false);\n\n    andThen(function () {\n      // go off\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(iPad)');\n      });\n    });\n\n    // come back\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.ok(find('.js-label1').prop('checked'), 'reverted back to original value');\n      assert.ok(find('.js-label2').prop('checked'), 'original label2 value');\n    });\n\n    fillIn('.js-label2', false);\n\n    andThen(function () {\n      // go off\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(iPad)');\n      });\n    });\n\n    // come back\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.ok(find('.js-label2').prop('checked'), 'reverted back to original value');\n      assert.ok(!find('.js-time-label').prop('checked'), 'original time label value');\n    });\n\n    fillIn('.js-time-label', true);\n\n    andThen(function () {\n      // go off\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(iPad)');\n      });\n    });\n\n    // come back\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.ok(!find('.js-time-label').prop('checked'), 'reverted back to original value');\n      assert.equal(find('.js-custom-message').val(), 'siong is awesome', 'original custom message value');\n    });\n\n    fillIn('.js-custom-message', 'lalala');\n\n    andThen(function () {\n      // go off\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(iPad)');\n      });\n    });\n\n    // come back\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.equal(find('.js-custom-message').val(), 'siong is awesome', 'reverted back to original value');\n    });\n  });\n\n  qunit.test('config has email enabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          has_email: true,\n          slideshows: [],\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.ok(find('.js-field1 option:contains(Email)').length, 'Email is a custom field option');\n    });\n  });\n\n  qunit.test('config has email disabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_email: false\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.ok(!find('.js-field1 option:contains(Email)').length, 'Email is not a custom field option');\n    });\n  });\n\n  qunit.test('config has phone enabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          has_phone: true,\n          location_id: 1,\n          slideshows: [],\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.ok(find('.js-field1 option:contains(Phone)').length, 'Phone is a custom field option');\n    });\n  });\n\n  qunit.test('config has phone disabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_phone: false\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.ok(!find('.js-field1 option:contains(Phone)').length, 'Phone is not a custom field option');\n    });\n  });\n\n  qunit.test('add a host field to the custom fields dropdown once the user enables a notification', function (assert) {\n    assert.expect(2);\n\n    visit('/settings/badge'); // preload config so we can test that it really forces a config pull\n    visit('/settings/notifications');\n\n    click('.btn:contains(Enable host notifications)');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n    });\n\n    click('.js-email-notification');\n    andThen(function () {\n      server.register('GET', '/api/v1/configs/1', function (request) {\n        assert.ok(true, 're-pulls the config');\n        return [200, { 'Content-Type': 'application/json' }, {\n          config: {\n            id: 1,\n            location_id: 1,\n            slideshows: [],\n            integrations: [],\n            custom_fields: [{ 'label': 'Your Company' }, { 'label': 'Your Car' }, {\n              type: 'host_notification',\n              label: 'Host',\n              required: false,\n              dropdown: false,\n              options: []\n            }]\n          }\n        }];\n      });\n    });\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.ok(find('option:contains(Host)').length, 'host is an option');\n    });\n  });\n\n  qunit.test('when custom badge background exists', function (assert) {\n    assert.expect(1);\n\n    locations[0].badge_id = 1;\n\n    server.register('GET', '/api/v1/badges/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        badge: {\n          id: 1,\n          custom_badge: 'http://example.com/foo.png',\n          sample_photo_path: '/sample_badge_photo.png',\n          preview_html: ''\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.equal(find('.badgeDesigner').attr('style'), \"background-image: url('http://example.com/foo.png');\", 'badge designer has the custom_badge background image set as an inline style');\n    });\n  });\n\n  qunit.test('when custom badge background doesnt exists', function (assert) {\n    assert.expect(1);\n\n    locations[0].badge_id = 1;\n\n    server.register('GET', '/api/v1/badges/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        badge: {\n          id: 1,\n          custom_badge: null,\n          sample_photo_path: '/sample_badge_photo.png',\n          preview_html: ''\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.ok(!find('.badgeDesigner').attr('style'), 'badge designer has no inline style');\n    });\n  });\n\n  qunit.test('touching the custom css without saving will trigger dirty checking', function (assert) {\n    assert.expect(1);\n\n    var cssEditor;\n\n    visit('/settings/badge');\n\n    click('.js-css .btn:contains(Enable)');\n\n    andThen(function () {\n      cssEditor = find('.js-css .CodeMirror')[0].CodeMirror;\n      Ember['default'].run(function () {\n        cssEditor.setValue('body { background-color: red; }');\n      });\n    });\n\n    andThen(function () {\n      stubConfirm['default'](assert, false, function () {\n        click('a:contains(Account)');\n      });\n    });\n\n    // save, everything clean now\n    click('.js-css .btn:contains(Save)');\n\n    andThen(function () {\n      // confirm shouldn't be called\n      stubConfirm['default'](assert, true, false, function () {\n        click('a:contains(Account)');\n      });\n    });\n  });\n\n  qunit.test('custom css rollsback if discarding changes', function (assert) {\n    assert.expect(3);\n\n    var cssEditor;\n\n    visit('/settings/badge');\n\n    click('.js-css .btn:contains(Enable)');\n\n    andThen(function () {\n      cssEditor = find('.js-css .CodeMirror')[0].CodeMirror;\n      assert.equal(cssEditor.getValue(), 'body {}', 'original css value');\n      Ember['default'].run(function () {\n        cssEditor.setValue('body { background-color: red; }');\n      });\n    });\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(Account)');\n      });\n    });\n\n    click('a:contains(Badge)');\n\n    click('.js-css .btn:contains(Enable)');\n\n    andThen(function () {\n      cssEditor = find('.js-css .CodeMirror')[0].CodeMirror;\n      assert.equal(cssEditor.getValue(), 'body {}', 'original css value');\n    });\n  });\n\n  qunit.test('when visitor photos are turned off and the user selects display, he should be prompted to enable photos for all visitors', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_photo_page: false\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      // test if we cancel out first, value should not change to Display\n      stubConfirm['default'](assert, false, function () {\n        select['default']('.js-photo', 'Display');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-photo').val(), 'false', 'reverted back to false');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        assert.equal(config.has_photo_page, true, 'photo is now enabled');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      stubConfirm['default'](assert, true, function () {\n        select['default']('.js-photo', 'Display');\n      });\n    });\n  });\n\n  qunit.test('when a user turns off photos for everyone on settings/ipad, the badge photo dropdown should be set to hide', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_photo_page: true\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.equal(find('.js-photo').val(), 'true', 'photos are currently in the badge preview');\n    });\n\n    click('a:contains(iPad)');\n\n    andThen(function () {\n      assert.ok(find('.js-visitor-photos input').prop('checked'), 'visitor photos is on');\n    });\n\n    server.register('PUT', '/api/v1/configs/1', function (request) {\n      var config = JSON.parse(request.requestBody).config;\n      config.id = 1;\n      assert.ok(!config.has_photo_page, 'has_photo_page changed to false');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    click('.js-visitor-photos input');\n\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.equal(find('.js-photo').val(), 'false', 'photos are now off');\n    });\n  });\n\n  qunit.test('previewing a badge with company name override', function (assert) {\n    assert.expect(1);\n\n    locations[0].company_name_override = 'Disney';\n\n    visit('/settings/badge');\n\n    var badge = App.__container__.lookup('controller:badge');\n\n    select['default']('.js-branding', 'Company');\n\n    andThen(function () {\n      assert.ok(badge.get('previewHTML').indexOf('var company = \"Disney\";') > -1, 'company variable was replaced');\n    });\n  });\n\n});","define('garaje/tests/acceptance/badge-preview-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/badge-preview-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/badge-preview-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/badge-printer-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/fixtures/badge', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, __dep5__, stubConfirm) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Location printer', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      var badges = [FactoryGuy['default'].build('badge', {\n        custom_field1: 'none',\n        custom_field2: 'none'\n      })['badge'], FactoryGuy['default'].build('badge', {\n        custom_field1: 'none',\n        custom_field2: 'none'\n      })['badge']];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'SF',\n        primary: true,\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        badge: {\n          id: badges[0].id\n        },\n        printer: {\n          id: 1\n        }\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'NY',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        badge: {\n          id: badges[1].id\n        },\n        printer: {\n          id: 2\n        }\n      })['location']];\n\n      locations.forEach(function (location) {\n        location.config_id = location.id;\n      });\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/badges/:id', function (request) {\n          var badge = badges.find(function (c) {\n            return c.id.toString() === request.params.id;\n          });\n          return [200, { 'Content-Type': 'application/json' }, { badge: badge }];\n        });\n        this.get('/api/v1/configs/:id', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: request.params.id,\n              location_id: request.params.id,\n              slideshows: [],\n              integrations: []\n            }\n          }];\n        });\n        this.get('/api/v1/printers/:id', function (request) {\n          var printer = {\n            id: request.params.id,\n            ip: null,\n            enabled: false\n          };\n          assert.ok(true, 'printer is returned');\n          return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n        });\n        this.put('/api/v1/printers/1', function (request) {\n          var printer = JSON.parse(request.requestBody).printer;\n          printer.id = 1;\n          assert.ok(true, 'printer is created');\n          assert.equal(printer.location_id, locations[0].id, 'it sends the location_id');\n          return [201, { 'Content-Type': 'application/json' }, { printer: printer }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('adding/updating/disabling/enabling a printer', function (assert) {\n    assert.expect(40);\n\n    var printerDiv;\n\n    visit('/settings/badge');\n\n    click('.btn:contains(Enable badge printing)');\n\n    andThen(function () {\n      printerDiv = find('.js-badge-printer');\n      assert.ok(printerDiv.find('input').length, 'form field is now displayed');\n      assert.ok(find('a:contains(Badge)').hasClass('active'), 'Badge title is lit up');\n      fillIn('.badge-printerip', '169.254');\n    });\n\n    andThen(function () {\n      assert.equal(printerDiv.find('label').text().trim(), 'IP is invalid. Check out the printer guide and try again.', 'label shows error');\n      assert.ok(printerDiv.find('.btn:contains(Save)').prop('disabled'), 'save button is disabled');\n      assert.ok(printerDiv.find('.btn:contains(Disable)').prop('disabled'), 'disabled button is disabled');\n      fillIn('.badge-printerip', '123.123.123.123');\n    });\n\n    andThen(function () {\n      assert.equal(printerDiv.find('label').text().trim(), 'Printer IP Address', 'label is back to normal');\n      assert.ok(!printerDiv.find('.btn:contains(Save)').prop('disabled'), 'save button is enabled');\n      assert.ok(!printerDiv.find('.btn:contains(Disable)').prop('disabled'), 'disabled button is enabled');\n\n      stubConfirm['default'](assert, false, function () {\n        click(printerDiv.find('.btn--cancel'));\n      });\n\n      server.register('PUT', '/api/v1/printers/:id', function (request) {\n        var printer = JSON.parse(request.requestBody).printer;\n        assert.equal(request.params.id, '1', 'updating the right printer');\n        assert.equal(printer.ip, '123.123.123.123', 'ip passed in correctly');\n        printer.id = request.params.id;\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n\n      click(printerDiv.find('.btn:contains(Save)'));\n    });\n\n    // Updating\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'has success message');\n      assert.ok(!printerDiv.find('input').length, 'form fields are not shown again');\n      assert.equal(printerDiv.find('.btn:first-child').text(), 'Edit', 'button displays Edit now');\n      click(printerDiv.find('.btn'));\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/printers/:id', function (request) {\n        var printer = JSON.parse(request.requestBody).printer;\n        assert.equal(request.params.id, '1', 'updating the right printer');\n        assert.equal(printer.ip, '321.321.321.321', 'ip updated');\n        printer.id = request.params.id;\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n\n      assert.equal(printerDiv.find('.badge-printerip').val(), '123.123.123.123', 'the ip is persisted');\n      fillIn('.badge-printerip', '321.321.321.321');\n      click(printerDiv.find('.btn:contains(Save)'));\n    });\n\n    // Disabling\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'has success message');\n\n      server.register('PUT', '/api/v1/printers/:id', function (request) {\n        var printer = JSON.parse(request.requestBody).printer;\n        assert.equal(request.params.id, '1', 'updating the right printer');\n        assert.equal(printer.enabled, false, 'enabled updated');\n        printer.id = request.params.id;\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n\n      assert.ok(!printerDiv.find('input').length, 'form fields are not shown again');\n      assert.equal(printerDiv.find('.btn:first-child').text(), 'Edit', 'button displays Edit now');\n      assert.equal(printerDiv.find('code').text().trim(), '321.321.321.321', 'ip is shown on callapsed div');\n      click(printerDiv.find('.btn'));\n    });\n\n    andThen(function () {\n      assert.equal(printerDiv.find('.badge-printerip').val(), '321.321.321.321', 'the ip is updated');\n      fillIn('.badge-printerip', '321.321.321.321');\n      click(printerDiv.find('.btn:contains(Disable)'));\n    });\n\n    // test one-click Enabling\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'has success message');\n\n      server.register('PUT', '/api/v1/printers/:id', function (request) {\n        var printer = JSON.parse(request.requestBody).printer;\n        assert.equal(request.params.id, '1', 'updating the right printer');\n        assert.equal(printer.enabled, true, 'enabled updated');\n        printer.id = request.params.id;\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n\n      assert.ok(!printerDiv.find('input').length, 'form fields are not shown again');\n      assert.equal(printerDiv.find('.btn:first-child').text().trim(), 'Enable', 'button displays Enable now');\n      click(printerDiv.find('.btn'));\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'has success message');\n      assert.ok(!printerDiv.find('input').length, 'form fields are still not shown');\n      assert.equal(printerDiv.find('.btn:first-child').text(), 'Edit', 'button displays Edit now');\n    });\n\n    // re-disable\n    andThen(function () {\n      click(printerDiv.find('.btn:contains(Edit)'));\n\n      server.register('PUT', '/api/v1/printers/:id', function (request) {\n        var printer = JSON.parse(request.requestBody).printer;\n        assert.equal(request.params.id, '1', 'updating the right printer');\n        assert.equal(printer.enabled, false, 'enabled updated');\n        printer.id = request.params.id;\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n\n      return wait();\n    });\n\n    andThen(function () {\n      return click(printerDiv.find('.btn:contains(Disable)'));\n    });\n\n    // go away so that we see the splash page again\n    click('a:contains(iPad)');\n    click('a:contains(Badge)');\n\n    // Enabling already existing printer\n    andThen(function () {\n      server.register('PUT', '/api/v1/printers/:id', function (request) {\n        var printer = JSON.parse(request.requestBody).printer;\n        assert.equal(request.params.id, '1', 'updating the right printer');\n        assert.equal(printer.enabled, true, 'enabled updated');\n        printer.id = request.params.id;\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n    });\n    click('.btn:contains(Enable badge printing)');\n\n    andThen(function () {\n      printerDiv = find('.js-badge-printer');\n      assert.ok(find('.messageBar').hasClass('success'), 'has success message');\n      assert.ok(!printerDiv.find('input').length, 'form fields are still not shown');\n      assert.equal(printerDiv.find('.btn:first-child').text(), 'Edit', 'button displays Edit now');\n    });\n  });\n\n  qunit.test('disabling an enabled printer with no ip should expand printer div', function (assert) {\n    assert.expect(14);\n\n    var printerDiv;\n\n    visit('/settings/badge');\n\n    // Enabling already existing printer\n    andThen(function () {\n      server.register('PUT', '/api/v1/printers/:id', function (request) {\n        var printer = JSON.parse(request.requestBody).printer;\n        assert.equal(request.params.id, '2', 'updating the right printer');\n        assert.equal(printer.enabled, true, 'enabled updated');\n        printer.id = request.params.id;\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n\n      server.register('GET', '/api/v1/printers/:id', function (request) {\n        var printer = {\n          id: request.params.id,\n          ip: '123.123.123.123',\n          enabled: true\n        };\n        assert.ok(true, 'printer is returned');\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n      click('.js-mainHeader-location-trigger');\n      click('ic-menu-item:contains(NY)');\n      click('a:contains(Enable badge printing)');\n    });\n\n    andThen(function () {\n      printerDiv = find('.js-badge-printer');\n      assert.ok(!printerDiv.find('input').length, 'form fields are not shown');\n      assert.equal(printerDiv.find('.btn:first-child').text().trim(), 'Edit', 'button displays Edit now');\n      assert.equal(printerDiv.find('.js-printer-ip').html(), '123.123.123.123', 'ip is shown on callapsed div');\n      click(printerDiv.find('.btn:first-child'));\n    });\n\n    andThen(function () {\n      assert.ok(printerDiv.find('input').length, 'form field is now displayed');\n      fillIn('.badge-printerip', '');\n\n      server.register('PUT', '/api/v1/printers/:id', function (request) {\n        var printer = JSON.parse(request.requestBody).printer;\n        assert.equal(request.params.id, '2', 'updating the right printer');\n        assert.equal(printer.ip, '', 'ip emptied');\n        assert.equal(printer.enabled, false, 'enabled updated');\n        printer.id = request.params.id;\n        return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n      });\n\n      click(printerDiv.find('.btn:contains(Disable)'));\n    });\n\n    andThen(function () {\n      assert.ok(!printerDiv.find('input').length, 'form fields are not shown');\n      assert.equal(printerDiv.find('.btn:first-child').text().trim(), 'Enable', 'button displays Edit now');\n      click(printerDiv.find('.btn:first-child'));\n    });\n\n    andThen(function () {\n      assert.ok(printerDiv.find('input').length, 'form field is now displayed');\n    });\n  });\n\n  qunit.test('no existing printer, moving away without saving, hitting cancel to stay on the page', function (assert) {\n    assert.expect(3);\n\n    visit('/settings/badge');\n\n    click('.btn:contains(Enable badge printing)');\n\n    fillIn('.badge-printerip', '127.0.0.1');\n\n    stubConfirm['default'](assert, false, function () {\n      click('a:contains(Account)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.badge-printerip').length, 'still on the badge page, form visible');\n    });\n  });\n\n  qunit.test('no existing printer, moving away without saving, hitting ok to continue', function (assert) {\n    assert.expect(3);\n\n    visit('/settings/badge');\n\n    click('.btn:contains(Enable badge printing)');\n\n    fillIn('.badge-printerip', '127.0.0.1');\n\n    stubConfirm['default'](assert, true, function () {\n      click('a:contains(Account)');\n    });\n\n    click('a:contains(Badge)');\n\n    andThen(function () {\n      assert.ok(find('.btn:contains(Enable badge printing)').length, 'printer got rolledback');\n    });\n  });\n\n  qunit.test('has existing printer, moving away without saving, hitting cancel to stay on the page', function (assert) {\n    assert.expect(3);\n\n    visit('/settings/badge');\n\n    click('.btn:contains(Enable badge printing)');\n\n    fillIn('.badge-printerip', '127.0.0.1');\n\n    stubConfirm['default'](assert, false, function () {\n      click('a:contains(Account)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.badge-printerip').length, 'still on the badge page, form visible');\n    });\n  });\n\n  qunit.test('has existing printer, moving away without saving, hitting ok to continue', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/printers/1', function (request) {\n      var printer = {\n        id: 1,\n        ip: '127.0.0.1',\n        enabled: true\n      };\n      return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n    });\n\n    visit('/settings/badge');\n\n    click('.js-badge-printer .btn:contains(Edit)');\n\n    fillIn('.badge-printerip', '127.0.0.2');\n\n    stubConfirm['default'](assert, true, function () {\n      click('a:contains(Account)');\n    });\n\n    click('a:contains(Badge)');\n\n    // editing state also got rolled back, hence\n    // needing to click Edit again\n    click('.js-badge-printer .btn:contains(Edit)');\n\n    andThen(function () {\n      assert.equal(find('.badge-printerip').val(), '127.0.0.1', 'printer got rolledback');\n    });\n  });\n\n});","define('garaje/tests/acceptance/badge-printer-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/badge-printer-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/badge-printer-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/billing-legacy-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/parse-post-data', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, parsePostData, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server;\n\n  qunit.module('Acceptance: Settings > Billing > Plans (legacy)', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              company_id: 1,\n              name: 'SF'\n            }, {\n              id: 2,\n              company_id: 1,\n              name: 'NY',\n              disabled: true\n            }, {\n              id: 3,\n              company_id: 1,\n              name: 'SD'\n            }]\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/payments', function () {\n          return [200, { 'Content-Type': 'application/json' }, { payments: [] }];\n        });\n\n        this.get('/api/v1/plans/standard-75', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'standard-75',\n              name: 'Standard',\n              monthly_price: 75,\n              yearly_price: 75\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('on legacy plan, should see legacy icon', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          last4: '1234',\n          expiry_month: 10,\n          expiry_year: 2019,\n          brand: 'Visa',\n          plan: 'standard-75',\n          period: 'monthly',\n          coupon: {\n            percent_off: 10\n          },\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      assert.ok(find('.js-plan-icon').hasClass('icon-legacyPlan'));\n    });\n  });\n\n});","define('garaje/tests/acceptance/billing-legacy-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/billing-legacy-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/billing-legacy-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/billing-payment-method-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/parse-post-data', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/fill-in-with-key-press'], function (Ember, qunit, startApp, parsePostData, Pretender, FactoryGuy, fillInWithKeyPress) {\n\n  'use strict';\n\n  var App, server;\n\n  qunit.module('Acceptance: Settings > Billing - Payment Method', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              company_id: 1,\n              name: 'SF'\n            }]\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/plans/standard', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }\n          }];\n        });\n\n        this.get('/api/v1/payments', function () {\n          return [200, { 'Content-Type': 'application/json' }, { payments: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('with working normal card, changing it to one with card date error, then correcting and successfully submitting', function (assert) {\n    assert.expect(11);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          plan: 'standard',\n          period: 'monthly',\n          last4: '1234',\n          brand: 'American Express',\n          expiry_month: 12,\n          expiry_year: 2019,\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // Now to the actual payment method tokenized box\n      var paymentDiv = find('.js-payment-method');\n      assert.ok(paymentDiv.find('.js-card-type').hasClass('amex'), 'displays the amex icon');\n      assert.equal(paymentDiv.find('h4').text(), 'American Express', 'displays the brand');\n      assert.equal(paymentDiv.find('.js-last4').text(), '●●●● 1234 · Expires 12/2019', 'displays the last4 and expiry');\n    });\n\n    click('.js-payment-method .btn:contains(Edit)');\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '10/2220');\n    fillIn('.js-cc-cvc', '123');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(402, {\n              error: {\n                type: 'api_error',\n                message: 'Your card\\'s expiration year is invalid.',\n                param: 'exp_year',\n                code: 'invalid_expiry_year'\n              }\n            });\n          }\n        }\n      };\n\n      click('.js-payment-method .btn:contains(Save)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-cc-exp').prev('label').text().trim(), 'Your card\\'s expiration year is invalid.', 'validation error displayed on expiration field');\n    });\n\n    triggerEvent('.js-cc-exp', 'focus');\n    triggerEvent('.js-cc-exp', 'keypress', { keyCode: 46 });\n\n    fillInWithKeyPress['default']('.js-cc-exp', '10/2020');\n    triggerEvent('.js-cc-exp', 'input');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n\n        assert.equal(subscription.stripe_token, 'token', 'token was passed in');\n\n        delete subscription.stripe_token;\n        subscription.last4 = '4242';\n        subscription.brand = 'Visa';\n        subscription.expiry_month = 10;\n        subscription.expiry_year = 2020;\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click('.js-payment-method .btn:contains(Save)');\n    });\n\n    andThen(function () {\n      // Now to the actual payment method tokenized box\n      var paymentDiv = find('.js-payment-method');\n      assert.ok(paymentDiv.find('.js-card-type').hasClass('visa'), 'displays the visa icon');\n      assert.equal(paymentDiv.find('h4').text(), 'Visa', 'displays the brand');\n      assert.equal(paymentDiv.find('.js-last4').text(), '●●●● 4242 · Expires 10/2020', 'displays the last4 and expiry');\n      assert.ok(!find('.js-cc-number').length, 'cc form is collapsed');\n    });\n\n    click('.js-payment-method .btn:contains(Edit)');\n\n    andThen(function () {\n      assert.ok(find('.js-cc-number').length, 'cc form is expanded');\n    });\n  });\n\n  qunit.test('with delinquent card, changing it', function (assert) {\n    assert.expect(12);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          plan: 'standard',\n          period: 'monthly',\n          last4: '1234',\n          brand: 'American Express',\n          expiry_month: 12,\n          expiry_year: 2019,\n          delinquent: true,\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // Now to the actual payment method tokenized box\n      var paymentDiv = find('.js-payment-method');\n      assert.ok(!paymentDiv.find('.js-card-type').hasClass('amex'), 'doesnt display the amex icon');\n      assert.ok(paymentDiv.find('.js-icon-alert'), 'displays the alert icon');\n      assert.equal(paymentDiv.find('h4').text(), 'American Express', 'displays the brand');\n      assert.equal(paymentDiv.find('.js-last4').text(), '●●●● 1234 · Expires 12/2019', 'displays the last4 and expiry');\n      assert.equal(paymentDiv.find('.js-delinquent-message').text().trim(), 'Your card was declined. Update your card to resume service.', 'displays delinquent message');\n    });\n\n    click('.js-payment-method .btn:contains(Fix)');\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '10/2020');\n    fillIn('.js-cc-cvc', '123');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n\n        assert.equal(subscription.stripe_token, 'token', 'token was passed in');\n\n        delete subscription.stripe_token;\n        subscription.last4 = '4242';\n        subscription.brand = 'Visa';\n        subscription.expiry_month = 10;\n        subscription.expiry_year = 2020;\n        subscription.delinquent = false;\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click('.js-payment-method .btn:contains(Save)');\n    });\n\n    andThen(function () {\n      // Now to the actual payment method tokenized box\n      var paymentDiv = find('.js-payment-method');\n      assert.ok(paymentDiv.find('.js-card-type').hasClass('visa'), 'displays the visa icon');\n      assert.ok(!paymentDiv.find('.js-icon-alert').hasClass('icon-alert'), 'doesnt display the alert icon');\n      assert.equal(paymentDiv.find('h4').text(), 'Visa', 'displays the brand');\n      assert.equal(paymentDiv.find('.js-last4').text(), '●●●● 4242 · Expires 10/2020', 'displays the last4 and expiry');\n      assert.ok(!paymentDiv.find('.js-delinquent-message').length, 'no delinquent message');\n    });\n  });\n\n  qunit.test('with no card, adding it', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          plan: 'standard',\n          period: 'monthly',\n          last4: null,\n          brand: null,\n          expiry_month: null,\n          expiry_year: null,\n          delinquent: false,\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    click('.js-payment-method .btn:contains(Add)');\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '10/2020');\n    fillIn('.js-cc-cvc', '123');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n\n        assert.equal(subscription.stripe_token, 'token', 'token was passed in');\n\n        delete subscription.stripe_token;\n        subscription.last4 = '4242';\n        subscription.brand = 'Visa';\n        subscription.expiry_month = 10;\n        subscription.expiry_year = 2020;\n        subscription.delinquent = false;\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click('.js-payment-method .btn:contains(Save)');\n    });\n\n    andThen(function () {\n      // Now to the actual payment method tokenized box\n      var paymentDiv = find('.js-payment-method');\n      assert.ok(paymentDiv.find('.js-card-type').hasClass('visa'), 'displays the visa icon');\n      assert.ok(!paymentDiv.find('.js-icon-alert').hasClass('icon-alert'), 'doesnt display the alert icon');\n      assert.equal(paymentDiv.find('h4').text(), 'Visa', 'displays the brand');\n      assert.equal(paymentDiv.find('.js-last4').text(), '●●●● 4242 · Expires 10/2020', 'displays the last4 and expiry');\n      assert.ok(!paymentDiv.find('.js-delinquent-message').length, 'no delinquent message');\n    });\n  });\n\n  qunit.test('when editing a card, the user should be able to save a credit card by hitting enter in any of the CC fields', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          plan: 'standard',\n          period: 'monthly',\n          last4: null,\n          brand: null,\n          expiry_month: null,\n          expiry_year: null,\n          delinquent: false,\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    click('.js-payment-method .btn:contains(Add)');\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '10/2020');\n    fillIn('.js-cc-cvc', '123');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n\n        assert.equal(subscription.stripe_token, 'token', 'token was passed in');\n\n        delete subscription.stripe_token;\n        subscription.last4 = '4242';\n        subscription.brand = 'Visa';\n        subscription.expiry_month = 10;\n        subscription.expiry_year = 2020;\n        subscription.delinquent = false;\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      triggerEvent('.js-cc-form', 'submit');\n    });\n\n    andThen(function () {\n      // Now to the actual payment method tokenized box\n      var paymentDiv = find('.js-payment-method');\n      assert.ok(paymentDiv.find('.js-card-type').hasClass('visa'), 'displays the visa icon');\n      assert.ok(!paymentDiv.find('.js-icon-alert').hasClass('icon-alert'), 'doesnt display the alert icon');\n      assert.equal(paymentDiv.find('h4').text(), 'Visa', 'displays the brand');\n      assert.equal(paymentDiv.find('.js-last4').text(), '●●●● 4242 · Expires 10/2020', 'displays the last4 and expiry');\n      assert.ok(!paymentDiv.find('.js-delinquent-message').length, 'no delinquent message');\n    });\n  });\n\n});","define('garaje/tests/acceptance/billing-payment-method-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/billing-payment-method-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/billing-payment-method-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/billing-payments-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/parse-post-data', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, parsePostData, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server;\n\n  qunit.module('Acceptance: Settings > Billing - Payments', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              email_receipts: false,\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              name: 'SF',\n              company_id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: null,\n              plan: 'standard',\n              period: 'monthly',\n              last4: '1234',\n              brand: 'American Express',\n              expiry_month: 12,\n              expiry_year: 2019,\n              features: ['billing']\n            }\n          }];\n        });\n\n        this.get('/api/v1/plans/standard', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }\n          }];\n        });\n\n        this.get('/api/v1/payments', function () {\n          return [200, { 'Content-Type': 'application/json' }, { payments: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('some payments', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/payments', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        payments: [{\n          id: 'upcoming',\n          date: '2015-01-10T21:21:27+00:00',\n          amount: 1000,\n          status: 'upcoming'\n        }]\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      assert.ok(!find('.js-no-payments').length, 'no payments placeholder is hidden');\n      assert.equal(find('.js-payment-date').text(), 'Jan 10, 2015', 'date is formatted');\n    });\n  });\n\n  qunit.test('no payments', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/payments', function () {\n      return [200, { 'Content-Type': 'application/json' }, { payments: [] }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      assert.ok(find('.js-no-payments').length, 'no payments placeholder exists');\n    });\n  });\n\n});","define('garaje/tests/acceptance/billing-payments-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/billing-payments-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/billing-payments-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/billing-plans-standard-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/parse-post-data', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, parsePostData, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server;\n\n  qunit.module('Acceptance: Settings > Billing > Plans (standard)', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              company_id: 1,\n              name: 'SF'\n            }, {\n              id: 2,\n              company_id: 1,\n              name: 'NY',\n              disabled: true\n            }, {\n              id: 3,\n              company_id: 1,\n              name: 'SD'\n            }]\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/plans', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plans: [{\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }, {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }, {\n              id: 'enterprise',\n              name: 'Enterprise',\n              yearly_price: 499\n            }]\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('on standard', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          last4: '1234',\n          expiry_month: 10,\n          expiry_year: 2019,\n          brand: 'Visa',\n          plan: 'standard',\n          period: 'monthly',\n          coupon: {\n            percent_off: 10\n          },\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing/plans');\n\n    andThen(function () {\n      assert.ok(find('.js-standard .btn:contains(Upgrade to Yearly)').length, 'standard plan button ready to be selected');\n      assert.ok(!find('.js-standard .btn:contains(Upgrade to Yearly)').prop('disabled'), 'standard plan button is active');\n\n      assert.ok(find('.js-premium .btn:contains(Upgrade to Premium)').length, 'premium plan button ready to be selected');\n      assert.ok(!find('.js-premium .btn:contains(Upgrade to Premium)').prop('disabled'), 'premium plan button is active');\n\n      assert.ok(find('.js-enterprise .btn:contains(Contact Us)').length, 'enterprise plan button is contact us');\n      assert.ok(!find('.js-enterprise .btn:contains(Contact Us)').prop('disabled'), 'enterprise plan button is active');\n    });\n  });\n\n});","define('garaje/tests/acceptance/billing-plans-standard-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/billing-plans-standard-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/billing-plans-standard-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/billing-plans-trial-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/parse-post-data', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, parsePostData, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server;\n\n  var formatLineItem = function formatLineItem(lineItem) {\n    lineItem = Ember['default'].$(lineItem);\n    var description = lineItem.find('.js-line-item-description').text().trim();\n    var price = lineItem.find('.js-line-item-price').text().trim();\n    return description + ' ' + price;\n  };\n\n  qunit.module('Acceptance: Settings > Billing > Plans (trial)', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              name: 'SF',\n              company_id: 1\n            }, {\n              id: 2,\n              name: 'NY',\n              disabled: true,\n              company_id: 1\n            }, {\n              id: 3,\n              name: 'SD',\n              company_id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/plans', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plans: [{\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }, {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }, {\n              id: 'enterprise',\n              name: 'Enterprise',\n              yearly_price: 499\n            }]\n          }];\n        });\n\n        this.get('/api/v1/payments', function () {\n          return [200, { 'Content-Type': 'application/json' }, { payments: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('no current plan, choosing premium', function (assert) {\n    assert.expect(34);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          coupon: {\n            percent_off: 10\n          },\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n    click('.btn:contains(Choose a Plan)');\n\n    andThen(function () {\n      assert.ok(find('.js-standard .btn:contains(Contact Us)').length, 'standard plan button is contact us');\n      assert.ok(!find('.js-standard .btn:contains(Contact Us)').prop('disabled'), 'standard plan button is active');\n\n      assert.ok(find('.js-premium .btn:contains(Choose Premium)').length, 'premium plan button ready to be selected');\n      assert.ok(!find('.js-premium .btn:contains(Choose Premium)').prop('disabled'), 'premium plan button is active');\n\n      assert.ok(find('.js-enterprise .btn:contains(Contact Us)').length, 'enterprise plan button is contact us');\n      assert.ok(!find('.js-enterprise .btn:contains(Contact Us)').prop('disabled'), 'enterprise plan button is active');\n\n      assert.equal(find('.js-footer').text().trim(), 'The new standard forvisitor registration.', 'footer shows default message');\n\n      // in the header\n      assert.ok(find('.js-trial-remaining').length, 'trial days is in the header');\n    });\n\n    click('.js-premium .btn:contains(Choose Premium)');\n\n    andThen(function () {\n      // header\n      assert.equal(find('.js-subscribe-header').text(), 'Subscribing to Premium Yearly · $249 per month', 'header shows plan and price for the yearly period');\n\n      // yearly savings panel\n      assert.equal(find('.js-yearly-savings').text(), 'Save $1,080 with Yearly billing', 'displays savings');\n      assert.ok(find('.js-yearly-toggle').prop('checked'), 'yearly is checked');\n\n      // price breakdown\n      var locations = find('.js-line-item-location');\n      assert.equal(formatLineItem(locations[0]), 'Acme SD at $249/mo $2,988.00', 'calculates line item for the year for SD');\n      assert.equal(formatLineItem(locations[1]), 'Acme SF at $249/mo $2,988.00', 'calculates line item for the year for SF');\n    });\n\n    click('.js-yearly-toggle');\n\n    andThen(function () {\n      // header\n      assert.equal(find('.js-subscribe-header').text(), 'Subscribing to Premium Monthly · $299 per month', 'header shows plan and price for the monthly period');\n\n      // yearly savings panel\n      assert.equal(find('.js-yearly-savings').text(), 'Save $1,080 with Yearly billing', 'displays savings');\n      assert.ok(!find('.js-yearly-toggle').prop('checked'), 'yearly is unchecked');\n\n      // price breakdown\n      var locations = find('.js-line-item-location');\n      assert.equal(formatLineItem(locations[0]), 'Acme SD at $299/mo $299.00', 'calculates line item for the year for SD');\n      assert.equal(formatLineItem(locations[1]), 'Acme SF at $299/mo $299.00', 'calculates line item for the year for SF');\n    });\n\n    fillIn('.js-procurement-source', 'Apple.com');\n    fillIn('.js-referral', 'Larry Gadea');\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '12/19');\n    fillIn('.js-cc-cvc', '123');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n        subscription.id = 'me';\n\n        assert.equal(subscription.stripe_token, 'token', 'token was passed in');\n        assert.equal(subscription.quantity, 2, 'quantity was passed in');\n        assert.equal(subscription.plan, 'premium', 'plan was passed in');\n        assert.equal(subscription.period, 'monthly', 'period was passed in');\n        assert.equal(subscription.procurement_source, 'Apple.com', 'procurement source was passed in');\n        assert.equal(subscription.referral, 'Larry+Gadea', 'referral was passed in');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click('.btn:contains(Subscribe to Premium Monthly)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(!find('h2:contains(Your Trial)').length, 'Your Trial header is not visible');\n      assert.ok(find('h2:contains(Current Plan)').length, 'Current Plan header is visible');\n      assert.ok(find('h2:contains(Payment Method)').length, 'Payment Method header is visible');\n      assert.ok(find('h2:contains(Payments)').length, 'Payments header is visible');\n      assert.ok(find('.js-plan-icon').hasClass('icon-premiumPlan'));\n\n      assert.equal(find('.js-footer').text().trim(), 'Envoy loves Acme', 'footer now says Envoy loves <company>');\n      // in the header\n      assert.ok(!find('.js-trial-remaining').length, 'trial days is not in the header');\n\n      var subscription = App.__container__.lookup('service:subscription');\n      assert.ok(!subscription.get('stripeToken'), 'stripeToken is nullified');\n    });\n  });\n\n  qunit.test('no current plan, choosing enterprise', function (assert) {\n    assert.expect(8);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n    click('.btn:contains(Choose a Plan)');\n\n    andThen(function () {\n      assert.ok(find('.js-standard .btn:contains(Contact Us)').length, 'standard plan button is contact us');\n      assert.ok(!find('.js-standard .btn:contains(Contact Us)').prop('disabled'), 'standard plan button is active');\n\n      assert.ok(find('.js-premium .btn:contains(Choose Premium)').length, 'premium plan button is contact us');\n      assert.ok(!find('.js-premium .btn:contains(Choose Premium)').prop('disabled'), 'premium plan button is active');\n\n      assert.ok(find('.js-enterprise .btn:contains(Contact Us)').length, 'enterprise plan button is contact us');\n      assert.ok(!find('.js-enterprise .btn:contains(Contact Us)').prop('disabled'), 'enterprise plan button is active');\n    });\n\n    click('.js-enterprise .btn:contains(Contact Us)');\n\n    andThen(function () {\n      var route = App.__container__.lookup('route:application');\n      assert.equal(route._location, '/contact', 'it goes to the contact us page');\n    });\n  });\n\n  qunit.test('no current plan, failing cc validations', function (assert) {\n    assert.expect(6);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          coupon: {\n            percent_off: 10\n          },\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n    click('.btn:contains(Choose a Plan)');\n    click('.js-premium .btn:contains(Choose Premium)');\n    click('.btn:contains(Subscribe to Premium Yearly)');\n\n    // local validations\n    andThen(function () {\n      assert.equal(find('.js-cc-number').prev('label').text().trim(), 'Card Number is invalid', 'number validation is displayed');\n      assert.equal(find('.js-cc-exp').prev('label').text().trim(), 'Expiry is invalid', 'expiry validation is displayed');\n      assert.equal(find('.js-cc-cvc').prev('label').text().trim(), 'Security Code is invalid', 'cvc validation is displayed');\n    });\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '12/19');\n    fillIn('.js-cc-cvc', '123');\n\n    // // manually fire the input event because fillIn doesn't\n    triggerEvent('.js-cc-number,.js-cc-exp,.js-cc-cvc', 'input');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(402, {\n              error: {\n                type: 'api_error',\n                message: 'Stripe is down.'\n              }\n            });\n          }\n        }\n      };\n    });\n    click('.btn:contains(Subscribe to Premium Yearly)');\n\n    andThen(function () {\n      assert.equal(find('.js-cc-number').prev('label').text().trim(), 'Stripe is down.', 'error is displayed on the number label');\n      assert.equal(find('.js-cc-exp').prev('label').text().trim(), 'Expiration (MM/YYYY)', 'expiry validation not displayed');\n      assert.equal(find('.js-cc-cvc').prev('label').text().trim(), 'Security Code', 'cvc validation not displayed');\n    });\n  });\n\n  qunit.test('pressing enter in the credit card field when subscribing should subscribe the user', function (assert) {\n    assert.expect(8);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          coupon: {\n            percent_off: 10\n          },\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n    click('.btn:contains(Choose a Plan)');\n\n    click('.js-premium .btn:contains(Choose Premium)');\n\n    andThen(function () {\n      assert.equal(find('.js-subscribe-header').text(), 'Subscribing to Premium Yearly · $249 per month', 'header shows plan and price for the yearly period');\n    });\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '12/19');\n    fillIn('.js-cc-cvc', '123');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n        subscription.id = 'me';\n\n        assert.equal(subscription.stripe_token, 'token', 'token was passed in');\n        assert.equal(subscription.quantity, 2, 'quantity was passed in');\n        assert.equal(subscription.plan, 'premium', 'plan was passed in');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n    });\n\n    triggerEvent('.js-cc-form', 'submit');\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(!find('h2:contains(Your Trial)').length, 'Your Trial header is not visible');\n      assert.ok(find('h2:contains(Current Plan)').length, 'Current Plan header is visible');\n    });\n  });\n\n  qunit.test('no current plan, choosing premium, but backend died', function (assert) {\n    var origHandler = Ember['default'].Test.adapter.exception;\n    var oneYearFromNow = moment().add(1, 'year').format('MMM D, YYYY');\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n    click('.btn:contains(Choose a Plan)');\n    click('.js-premium .btn:contains(Choose Premium)');\n\n    andThen(function () {\n      assert.equal(find('.js-due-now').text(), 'Due Now (Today until renewal on ' + oneYearFromNow + ')', 'renewal date');\n      assert.equal(find('.js-ledger-price:eq(2)').text(), '$5,976.00', 'due now');\n    });\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '12/19');\n    fillIn('.js-cc-cvc', '123');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        return [400, { 'Content-Type': 'application/json' }, { error: 'Backend died' }];\n      });\n\n      // override the default test adapter exception handler\n      // which shits an assertion even when we don't need it\n      Ember['default'].Test.adapter.exception = Ember['default'].K;\n\n      click('.btn:contains(Subscribe to Premium Yearly)');\n    });\n\n    andThen(function () {\n      var messageBar = find('.messageBar.error').first();\n      assert.ok(messageBar.hasClass('error'), 'messageBar has error class');\n      assert.equal(messageBar.find('p').text(), 'Error: Backend died', 'shows the error message');\n      assert.equal(find('.js-due-now').text(), 'Due Now (Today until renewal on ' + oneYearFromNow + ')', 'renewal date still the same');\n      assert.equal(find('.js-ledger-price:eq(2)').text(), '$5,976.00', 'due now stays the same');\n      Ember['default'].Test.adapter.exception = origHandler;\n    });\n  });\n\n});","define('garaje/tests/acceptance/billing-plans-trial-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/billing-plans-trial-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/billing-plans-trial-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/billing-standard-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/parse-post-data', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, parsePostData, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server;\n\n  qunit.module('Acceptance: Settings > Billing - Standard', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              name: 'SF',\n              company_id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        var standardPlan = {\n          id: 'standard',\n          name: 'Standard',\n          monthly_price: 119,\n          yearly_price: 99\n        };\n        var premiumPlan = {\n          id: 'premium',\n          name: 'Premium',\n          monthly_price: 299,\n          yearly_price: 249\n        };\n        var enterprisePlan = {\n          id: 'enterprise',\n          name: 'Enterprise',\n          yearly_price: 499\n        };\n\n        this.get('/api/v1/plans', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plans: [standardPlan, premiumPlan, enterprisePlan]\n          }];\n        });\n\n        this.get('/api/v1/plans/standard', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: standardPlan\n          }];\n        });\n\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: premiumPlan\n          }];\n        });\n\n        this.get('/api/v1/payments', function () {\n          return [200, { 'Content-Type': 'application/json' }, { payments: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('on standard monthly, and then upgrading to standard yearly', function (assert) {\n    assert.expect(19);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          plan: 'standard',\n          period: 'monthly',\n          last4: '1234',\n          quantity: 1,\n          coupon: {\n            percent_off: 10\n          },\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // Section headers\n      assert.ok(!find('h2:contains(Your Trial)').length, 'Your Plan header is not visible');\n      assert.ok(find('h2:contains(Current Plan)').length, 'Current Plan header is visible');\n      assert.ok(find('h2:contains(Payment Method)').length, 'Payment Method header is visible');\n      assert.ok(find('h2:contains(Payments)').length, 'Payments header is visible');\n\n      // Now to the actual plan tokenized box\n      assert.equal(find('.js-current-subscription .js-plan').text(), 'Standard', 'plan is standard');\n      assert.equal(find('.js-current-subscription .js-period').text(), 'Monthly billing', 'displays billing period');\n      assert.equal(find('.js-current-subscription .js-discount').text(), 'Save $216 — upgrade to Yearly billing');\n    });\n\n    click('.js-current-subscription .btn:contains(Upgrade)');\n    click('.btn:contains(Upgrade to Yearly)');\n\n    andThen(function () {\n      assert.equal(find('.js-subscribe-header').text(), 'Subscribing to Standard Yearly · $99 per month', 'header shows plan and price for the yearly period');\n      assert.ok(!find('.cc-form').length, 'cc form is not displayed');\n      assert.ok(!find('.js-yearly-toggle').length, 'Yearly toggle is not displayed');\n\n      // no key questions because we are already subscribed\n      assert.ok(!find('.js-key-questions').length, 'Key questions are not visible');\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n\n        assert.ok(!subscription.stripe_token, 'token should not be passed in');\n        assert.equal(subscription.quantity, 1, 'quantity was passed in');\n        assert.equal(subscription.plan, 'standard', 'plan was passed in');\n        assert.equal(subscription.period, 'yearly', 'period was passed in');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click('.btn:contains(Subscribe)');\n    });\n\n    andThen(function () {\n      var planDiv = find('.js-current-subscription');\n      assert.equal(find('.js-current-subscription .js-plan').text(), 'Standard', 'plan is standard');\n      assert.equal(find('.js-current-subscription .js-period').text(), 'Yearly billing', 'displays billing period');\n      assert.ok(find('.js-plan-icon').hasClass('icon-standardPlan'));\n    });\n  });\n\n  qunit.test('on standard monthly, when free is rolled out, is offered to upgrade to premium yearly', function (assert) {\n    assert.expect(10);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          plan: 'standard',\n          period: 'monthly',\n          last4: '1234',\n          quantity: 1,\n          coupon: {\n            percent_off: 10\n          },\n          features: ['billing', 'free_plan']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // Section headers\n      assert.ok(!find('h2:contains(Your Trial)').length, 'Your Plan header is not visible');\n      assert.ok(find('h2:contains(Current Plan)').length, 'Current Plan header is visible');\n      assert.ok(find('h2:contains(Payment Method)').length, 'Payment Method header is visible');\n      assert.ok(find('h2:contains(Payments)').length, 'Payments header is visible');\n\n      // Now to the actual plan tokenized box\n      assert.equal(find('.js-current-subscription .js-plan').text(), 'Standard', 'plan is standard');\n      assert.equal(find('.js-current-subscription .js-period').text(), 'Monthly billing', 'displays billing period');\n      assert.ok(find('.js-current-subscription .js-discount').text().indexOf('Upgrade to Premium') > -1, 'upsell is to upgrade to premium');\n    });\n\n    click('.js-current-subscription .btn:contains(Upgrade)');\n    click('.btn:contains(Upgrade to Premium)');\n\n    andThen(function () {\n      assert.equal(find('.js-subscribe-header').text(), 'Subscribing to Premium Yearly · $249 per month', 'header shows plan and price for the yearly period');\n      assert.ok(!find('.js-yearly-toggle').length, 'Yearly toggle is not displayed');\n    });\n  });\n\n  qunit.test('on standard monthly, and then upgrading to premium monthly', function (assert) {\n    assert.expect(14);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          plan: 'standard',\n          period: 'monthly',\n          last4: '1234',\n          quantity: 1,\n          coupon: {\n            percent_off: 10\n          },\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // Section headers\n      assert.ok(!find('h2:contains(Your Trial)').length, 'Your Plan header is not visible');\n      assert.ok(find('h2:contains(Current Plan)').length, 'Current Plan header is visible');\n      assert.ok(find('h2:contains(Payment Method)').length, 'Payment Method header is visible');\n      assert.ok(find('h2:contains(Payments)').length, 'Payments header is visible');\n\n      // Now to the actual plan tokenized box\n      assert.equal(find('.js-current-subscription .js-plan').text(), 'Standard', 'plan is standard');\n      assert.equal(find('.js-current-subscription .js-period').text(), 'Monthly billing', 'displays billing period');\n      assert.equal(find('.js-current-subscription .js-discount').text(), 'Save $216 — upgrade to Yearly billing');\n    });\n\n    click('.js-current-subscription .btn:contains(Upgrade)');\n    click('.btn:contains(Upgrade to Premium)');\n\n    andThen(function () {\n      assert.equal(find('.js-subscribe-header').text(), 'Subscribing to Premium Monthly · $299 per month', 'header shows plan and price for the yearly period');\n      assert.ok(!find('.cc-form').length, 'cc form is not displayed');\n      assert.ok(find('.js-yearly-toggle').length, 'Yearly toggle is displayed');\n    });\n\n    click('.js-yearly-toggle');\n\n    andThen(function () {\n      assert.equal(find('.js-subscribe-header').text(), 'Subscribing to Premium Yearly · $249 per month', 'header shows plan and price for the yearly period');\n      assert.ok(!find('.cc-form').length, 'cc form is not displayed');\n      assert.ok(find('.js-yearly-toggle').length, 'Yearly toggle is still displayed');\n    });\n  });\n\n  qunit.test('on standard yearly, and then upgrading to premium yearly', function (assert) {\n    assert.expect(16);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: null,\n          plan: 'standard',\n          period: 'yearly',\n          last4: '1234',\n          quantity: 1,\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // Section headers\n      assert.ok(!find('h2:contains(Your Trial)').length, 'Your Plan header is not visible');\n      assert.ok(find('h2:contains(Current Plan)').length, 'Current Plan header is visible');\n      assert.ok(find('h2:contains(Payment Method)').length, 'Payment Method header is visible');\n      assert.ok(find('h2:contains(Payments)').length, 'Payments header is visible');\n\n      // Now to the actual plan tokenized box\n      var planDiv = find('.js-current-subscription');\n      assert.equal(find('.js-current-subscription .js-plan').text(), 'Standard', 'plan is standard');\n      assert.equal(find('.js-current-subscription .js-period').text(), 'Yearly billing', 'displays billing period');\n    });\n\n    click('.js-current-subscription .btn:contains(Upgrade)');\n    click('.btn:contains(Upgrade to Premium)');\n\n    andThen(function () {\n      assert.equal(find('.js-subscribe-header').text(), 'Subscribing to Premium Yearly · $249 per month', 'header shows plan and price for the yearly period');\n      assert.ok(!find('.cc-form').length, 'cc form is not displayed');\n      assert.ok(!find('.js-yearly-toggle').length, 'Yearly toggle is not displayed');\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n\n        assert.ok(!subscription.stripe_token, 'token should not be passed in');\n        assert.equal(subscription.quantity, 1, 'quantity was passed in');\n        assert.equal(subscription.plan, 'premium', 'plan was passed in');\n        assert.equal(subscription.period, 'yearly', 'period was passed in');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click('.btn:contains(Subscribe)');\n    });\n\n    andThen(function () {\n      var planDiv = find('.js-current-subscription');\n      assert.equal(find('.js-current-subscription .js-plan').text(), 'Premium', 'plan is premium');\n      assert.equal(find('.js-current-subscription .js-period').text(), 'Yearly billing', 'displays billing period');\n    });\n  });\n\n});","define('garaje/tests/acceptance/billing-standard-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/billing-standard-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/billing-standard-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/billing-trial-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server;\n\n  qunit.module('Acceptance: Settings > Billing - trial', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              name: 'SF',\n              company_id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/plans', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plans: [{\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }, {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }, {\n              id: 'enterprise',\n              name: 'Enterprise',\n              yearly_price: 499\n            }]\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('still on trial', function (assert) {\n    assert.expect(10);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: moment().add(11, 'days').toDate(),\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // Section headers\n      assert.ok(find('h2:contains(Your Trial)').length, 'Your Trial header is visible');\n      assert.ok(!find('h2:contains(Current Plan)').length, 'Current Plan header is not visible');\n      assert.ok(!find('h2:contains(Payment Method)').length, 'Payment Method header is not visible');\n      assert.ok(!find('h2:contains(Payments)').length, 'Payments header is not visible');\n\n      // Now to the actual trial tokenized box\n      var trialDiv = find('.js-trial');\n      assert.equal(trialDiv.find('.js-trial-plan').text(), 'Premium Trial', 'plan is premium trial');\n      assert.equal(trialDiv.find('.js-trial-days-remaining').text().trim(), '11 Days Remaining', 'displays remaining days');\n      assert.equal(trialDiv.find('.js-trial-copy').text().trim(), \"We hope you're loving Envoy so far! If you have any questions, please contact us.\", 'copy is hope you are loving envoy');\n\n      // in the header\n      assert.equal(find('.js-trial-remaining').text().trim(), '11 Trial Days Left', 'shows the trial days');\n      assert.ok(!find('.js-trial-remaining').hasClass('ending'), 'doesnt have the ending class');\n    });\n  });\n\n  qunit.test('past trial', function (assert) {\n    assert.expect(10);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      assert.ok(true, 'subscription called');\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: moment().subtract(2, 'days').toDate(),\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // Section headers\n      assert.ok(find('h2:contains(Your Trial)').length, 'Your Trial header is visible');\n      assert.ok(!find('h2:contains(Current Plan)').length, 'Current Plan header is not visible');\n      assert.ok(!find('h2:contains(Payment Method)').length, 'Payment Method header is not visible');\n      assert.ok(!find('h2:contains(Payments)').length, 'Payments header is not visible');\n\n      // Now to the actual trial tokenized box\n      var trialDiv = find('.js-trial');\n      assert.equal(trialDiv.find('.js-trial-plan').text(), 'Premium Trial', 'plan is premium trial');\n      assert.equal(trialDiv.find('.js-trial-days-remaining').text().trim(), 'Trial Over', 'displays trial over');\n      assert.equal(trialDiv.find('.js-trial-copy').text().trim(), \"Thanks for trying Envoy! If you need help making a decision, please contact us.\", 'copy is thanks for trying envoy');\n\n      // in the header\n      assert.equal(find('.js-trial-remaining').text().trim(), 'Trial Over - Choose a Plan', 'shows trial over');\n      assert.ok(find('.js-trial-remaining').hasClass('bg-redDarker'), 'has the ending class');\n    });\n  });\n\n  qunit.test('less than 5 days left on trial', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: moment().add(5, 'days').toDate(),\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // in the header\n      assert.equal(find('.js-trial-remaining').text().trim(), '5 Trial Days Left', 'shows the trial days');\n      assert.ok(find('.js-trial-remaining').hasClass('bg-redDarker'), 'has the ending class');\n    });\n  });\n\n  qunit.test('more than 14 days left on trial', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: moment().add(366, 'days').toDate(),\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      // not in the header\n      assert.ok(!find('.js-trial-remaining').length, 'hides the trial days');\n    });\n  });\n\n  qunit.test('choose a plan button goes to the pricing page', function (assert) {\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/billing');\n    click('.btn:contains(Choose a Plan)');\n\n    andThen(function () {\n      assert.ok(find('.planName:contains(Standard)'), 'we really are on the pricing page');\n      assert.ok(find('.planName:contains(Premium)'), 'we really are on the pricing page');\n      assert.ok(find('.planName:contains(Enterprise)'), 'we really are on the pricing page');\n    });\n  });\n\n});","define('garaje/tests/acceptance/billing-trial-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/billing-trial-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/billing-trial-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/boss-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, controller, features;\n\n  qunit.module('Application: boss', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: features\n            }\n          }];\n        });\n\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              name: 'Foo',\n              company_id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n\n      controller = App.__container__.lookup('controller:application');\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(controller, 'set', 'localStorage.is_boss', false);\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('in boss mode', function (assert) {\n    assert.expect(3);\n\n    features = [];\n\n    Ember['default'].run(controller, 'set', 'localStorage.is_boss', true);\n\n    visit('/');\n\n    andThen(function () {\n      assert.ok(find('.js-mainHeader').hasClass('bg-red'), 'boss header');\n      assert.ok(!find('ic-menu-item:contains(Boss)').length, 'boss is not a menu item');\n    });\n\n    click('.js-click-logo');\n\n    andThen(function () {\n      var route = App.__container__.lookup('route:application');\n      assert.equal(route._location, '/locations/1', 'it goes back to investigate page for current location on envoy-boss');\n    });\n  });\n\n  qunit.test('not in boss mode', function (assert) {\n    assert.expect(4);\n\n    features = ['boss'];\n\n    var route;\n\n    Ember['default'].run(controller, 'set', 'localStorage.is_boss', false);\n\n    visit('/');\n\n    andThen(function () {\n      assert.ok(!find('.mainHeader').hasClass('boss'), 'no boss header');\n      assert.ok(find('ic-menu-item:contains(Boss)').length, 'boss is a menu item');\n    });\n\n    click('.js-click-logo');\n\n    andThen(function () {\n      route = App.__container__.lookup('route:application');\n      assert.equal(route._location, null, 'it doesnt go to the deboss route on envoy-web');\n    });\n\n    click('ic-menu-item:contains(Boss)');\n\n    andThen(function () {\n      route = App.__container__.lookup('route:application');\n      assert.equal(route._location, '/dashboard', 'it goes to dashboard on envoy-boss');\n    });\n  });\n\n});","define('garaje/tests/acceptance/boss-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/boss-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/boss-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/css-badge-feature-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/parse-post-data', 'garaje/tests/fixtures/badge'], function (Ember, qunit, startApp, Pretender, FactoryGuy, parsePostData) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: CSS Badge Feature', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      var badge = FactoryGuy['default'].build('badge', { custom_field1: 'none', custom_field2: 'none' })['badge'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'NY',\n        company: {\n          id: company.id\n        },\n        printer: {\n          id: 1\n        }\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        primary: true,\n        badge: {\n          id: badge.id\n        },\n        printer: {\n          id: 2\n        }\n      })['location']];\n\n      locations.forEach(function (location) {\n        location.config_id = location.id;\n      });\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/locations', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { locations: locations }];\n        });\n        this.get('/api/v1/configs/:id', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, {\n            config: {\n              id: request.params.id,\n              location_id: request.params.id,\n              slideshows: [],\n              integrations: []\n            }\n          }];\n        });\n        this.get('/api/v1/printers/:id', function (request) {\n          var printer = {\n            id: request.params.id,\n            ip: '123.123.123.123',\n            enabled: true\n          };\n          return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/badges/' + badge.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { badge: badge }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('users with access to the custom css badge feature should be able to use the feature', function (assert) {\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['custom_badge', 'billing']\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    click('.js-css .btn:contains(Enable)');\n    andThen(function () {\n      assert.ok(find('.js-css .CodeMirror').length, 'css field is shown');\n    });\n  });\n\n  qunit.test('users without custom css badge access should not be able to use the feature, be prompted to upgrade, and then return after successful upgrade', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          period: 'yearly',\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.ok(find('.js-css .btn:contains(Upgrade to Premium)').length, 'there is an upgrade to premium button');\n    });\n    click('.js-css .btn:contains(Upgrade to Premium)');\n\n    andThen(function () {\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          subscription: { \"trial_end_date\": \"2015-03-24T22:20:58.752Z\", \"plan\": \"premium\", \"period\": \"yearly\", \"quantity\": 1, \"delinquent\": false, \"last4\": \"4242\", \"brand\": \"Visa\", \"expiry_month\": 10, \"expiry_year\": 2015, \"features\": [\"multi_location\", \"custom_badge\", \"eventbrite\", \"pre_registration\", \"employees\", \"location_switcher\", \"boss\"], \"coupon\": null, \"period_start\": 1427840459, \"period_end\": 1459462859, \"credit_balance\": 0.0 }\n        }];\n      });\n\n      assert.ok(find('.js-subscribe-header:contains(Subscribing to Premium Yearly)').length, 'we really are on the subscribe page');\n    });\n\n    fillIn('.js-cc-number', '4242424242424242');\n    fillIn('.js-cc-exp', '12/19');\n    fillIn('.js-cc-cvc', '123');\n\n    click('.btn:contains(Subscribe to Premium Yearly)');\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('h2:contains(Badge Printer)').length, 'we are back on the badge printing page');\n    });\n  });\n\n});","define('garaje/tests/acceptance/css-badge-feature-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/css-badge-feature-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/css-badge-feature-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/customize-logo-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance | Settings | Customize | Logo', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        primary: true,\n        address: '461 2nd St, San Francisco, CA 94546',\n        config: {\n          id: 1\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['free_plan']\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.put('/api/v1/locations/' + locations[0].id, function (request) {\n          var body = JSON.parse(request.requestBody).location;\n          if (body.logo) {\n            assert.ok(body.logo, 'set a logo');\n          } else {\n            assert.ok(!body.logo, 'removed logo');\n          }\n          locations[0].logo = body.logo;\n          return [200, { 'Content-Type': 'application/json' }, { location: locations[0] }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/configs/1', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: 1,\n              location_id: locations[0].id,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  // test('deleting a logo', function(assert) {\n  //   assert.expect(1);\n\n  //   locations[0].logo = {\n  //     url: 'assets/tmp/luxoball.png',\n  //     smallUrl: 'assets/tmp/luxoball-normal.png',\n  //     thumbUrl: 'assets/tmp/luxoball-thumb.png'\n  //   };\n\n  //   visit('/settings/customize');\n\n  //   andThen(function(){\n  //     click('.js-delete-logo');\n  //   });\n  // });\n\n});","define('garaje/tests/acceptance/customize-logo-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/customize-logo-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/customize-logo-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/customize-slideshows-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance | Settings | Customize | Slideshows', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 2,\n        name: 'SF',\n        config: {\n          id: 1\n        },\n        company: {\n          id: 1\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['location_switcher', 'free_plan']\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n\n        this.get('/api/v1/configs/:id', function (req) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: req.params.id,\n              location_id: locations[0].id,\n              slideshows: [],\n              integrations: []\n            }\n          }];\n        });\n\n        this.get('/api/v1/slideshows/:id', function (req) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            slideshow: {\n              id: req.params.id,\n              url: 'http://example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('when there are 5 slideshows, the file input is hidden', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4, 5],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok(find('.js-file-upload-container').hasClass('display-none'), 'file input is indeed hidden');\n    });\n  });\n\n  qunit.test('when there are less than 5 slideshows, the file input is visible', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok(find('.js-file-upload-input:visible').length, 'file input is displayed');\n    });\n  });\n\n  qunit.test('deleting a slideshow', function (assert) {\n    assert.expect(11);\n\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshow_ids: [1, 2]\n        }\n      }];\n    });\n\n    server.register('POST', '/api/v1/configs/:id/refresh', function (request) {\n      assert.equal(request.params.id, '1', 'passed in the config id');\n\n      assert.ok(true, 'refresh endpoint was called');\n\n      return [200, { 'Content-Type': 'application/json' }, {}];\n    });\n\n    visit('/settings/customize');\n\n    server.register('DELETE', '/api/v1/slideshows/:id', function (req) {\n      assert.ok(true, 'delete was called');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    click('.js-delete-slideshow:eq(0)');\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-slideshowPreview-wrapper:not(.js-placeholder)').length, 1, 'slideshow removed');\n      // delete the other one\n      click('.js-delete-slideshow:eq(0)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-slideshowPreview-wrapper:not(.js-placeholder)').length, 0, 'all slideshows removed');\n      assert.ok(find('.js-slideshows .tokenized-form').length, 'form is still displayed');\n      assert.ok(!find('.js-slideshows .btn:contains(Enable)').length, 'enable button is not visible');\n    });\n  });\n\n  qunit.test('when there are slideshows, the placeholder is hidden', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok(!find('.js-slideshowPreview-wrapper.js-placeholder').length, 'placeholder is indeed hidden');\n    });\n  });\n\n  qunit.test('when there are no slideshows, the placeholder is visible', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n    click('.js-enable-slideshow');\n\n    andThen(function () {\n      assert.ok(find('.js-slideshowPreview-wrapper.js-placeholder').length, 'placeholder is visible');\n    });\n  });\n\n  qunit.test('when there are no slideshows, the tokenized box is collapsed', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok(!find('.js-slideshows .tokenized-form').length, 'form is hidden');\n      assert.ok(find('.js-enable-slideshow').length, 'enable button is visible');\n      click('.js-enable-slideshow');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-slideshows .tokenized-form').length, 'form is displayed');\n      assert.ok(!find('.js-enable-slideshow').length, 'enable button is not visible');\n    });\n  });\n\n  qunit.test('adding slideshows doesnt duplicate it', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [],\n          location_id: 2,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n    click('.js-enable-slideshow');\n\n    andThen(function () {\n      assert.equal(find('.js-slideshowPreview-wrapper:not(.js-placeholder)').length, 0, 'no slideshows');\n\n      var controller = App.__container__.lookup('controller:customize');\n      [1, 2, 3, 4, 5].forEach(function (id) {\n        controller.send('addSlideshow', {\n          slideshow: {\n            id: id,\n            url: 'http://example.com/' + id\n          }\n        });\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-slideshowPreview-wrapper:not(.js-placeholder)').length, 5, '5 slideshows are shown');\n    });\n\n    // the confirm dialog will never be called, because parent didn't\n    // become dirty, hence the expect(2) (instead of 3)\n    stubConfirm['default'](assert, function () {\n      click('a:contains(Account)');\n    });\n  });\n\n  qunit.test('toggle company name on welcome screen copy', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    locations[0].current_version = '1.4.1';\n    locations[0].installed_version = '1.4.1';\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.equal(find('.js-slideshows .liquid-container h4').text(), 'Hide Company Name from Welcome Screen', 'copy for hiding company name');\n    });\n  });\n\n  qunit.test('toggle company logo on welcome screen copy', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    locations[0].current_version = '1.4.1';\n    locations[0].installed_version = '1.4.1';\n    locations[0].logo = {\n      url: 'assets/tmp/luxoball.png',\n      smallUrl: 'assets/tmp/luxoball-normal.png',\n      thumbUrl: 'assets/tmp/luxoball-thumb.png'\n    };\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.equal(find('.js-slideshows .liquid-container h4').text(), 'Hide Company Logo from Welcome Screen', 'copy for hiding company logo');\n    });\n  });\n\n  qunit.test('toggle welcome image on welcome screen copy', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4],\n          welcome_image: 'http://example.com',\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    locations[0].current_version = '1.4.1';\n    locations[0].installed_version = '1.4.1';\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.equal(find('.js-slideshows .liquid-container h4').text(), 'Hide Welcome Image from Welcome Screen', 'copy for hiding welcome image');\n    });\n  });\n\n});","define('garaje/tests/acceptance/customize-slideshows-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/customize-slideshows-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/customize-slideshows-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/customize-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance | Settings | Customize', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n\n      var company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        config: {\n          id: 1\n        },\n        primary: true\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['free_plan']\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n\n        this.get('/api/v1/configs/1', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: 1,\n              location_id: 1,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('not visible if free_plan rollout not enabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: []\n        }\n      }];\n    });\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(!find('.subHeader-nav a:contains(Customize)').length, 'no customize link');\n    });\n  });\n\n  qunit.test('redirected away if free_plan rollout not enabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: []\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: []\n      }];\n    });\n\n    server.register('GET', '/api/v1/entries', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entries: []\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.dashboard.index', 'user is redirected to the dashboard');\n    });\n  });\n\n  qunit.test('customize banner displayed with upgrade button if customization feature is disabled while being master', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: ['free_plan', 'billing']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/plans', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        plans: [{\n          id: 'standard',\n          name: 'Standard',\n          monthly_price: 119,\n          yearly_price: 99\n        }, {\n          id: 'premium',\n          name: 'Premium',\n          monthly_price: 299,\n          yearly_price: 249\n        }, {\n          id: 'enterprise',\n          name: 'Enterprise',\n          yearly_price: 499\n        }]\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok(find('.js-upgrade-free-plan').length, 'upgrade banner visible');\n    });\n\n    click('.js-upgrade-free-plan a:contains(Upgrade)');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.billing.plans', 'upgrade button goes to plans');\n    });\n  });\n\n  qunit.test('customize banner displayed with no upgrade button if customization feature is disabled while being non-master', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: ['free_plan']\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok(find('.js-upgrade-free-plan').length, 'upgrade banner visible');\n      assert.ok(!find('.js-upgrade-free-plan a:contains(Upgrade)').length, 'no button to upgrade');\n      assert.ok(find('.js-upgrade-free-plan:contains(Please contact your admin to upgrade.)').length, 'tells user to contact admin');\n      assert.ok(find('.grayedOutSection').length, 'section is grayed out');\n    });\n  });\n\n  qunit.test('customize banner hidden if customization feature is enabled', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: ['free_plan', 'customization'],\n          plan: 'premium',\n          period: 'yearly'\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok(!find('.js-upgrade-free-plan').length, 'upgrade banner hidden');\n      assert.ok(!find('.grayedOutSection').length, 'section is not grayed out');\n    });\n  });\n\n});","define('garaje/tests/acceptance/customize-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/customize-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/customize-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/customize-welcome-image-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App = undefined,\n      server = undefined;\n\n  qunit.module('Acceptance | Settings | Customize | Welcome Image', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var locations = [FactoryGuy['default'].build('location', {\n        name: 'SF',\n        config: {\n          id: 1\n        },\n        company: {\n          id: company.id\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['location_switcher', 'free_plan']\n            }\n          }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/configs/:id', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: request.params.id,\n              location_id: request.params.id,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('welcome image is set', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: [],\n          welcome_image: 'http://example.com'\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok($('.js-welcome-image .tokenized-form').length, 'form is visible');\n      assert.ok(!find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is hidden');\n      assert.equal(find('.js-welcome-image .js-logo-preview').attr('src'), 'http://example.com', 'uses welcome image url');\n    });\n  });\n\n  qunit.test('deleting welcome image does not collapse the tokenized box', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: [],\n          welcome_image: 'http://example.com'\n        }\n      }];\n    });\n    server.register('PUT', '/api/v1/configs/1', function (req) {\n      var config = JSON.parse(req.requestBody).config;\n      config.id = 1;\n      assert.ok(!config.welcome_image, 'welcomeImage is set to null');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    visit('/settings/customize');\n    click('.js-welcome-image .btn:contains(Delete)');\n\n    andThen(function () {\n      assert.ok(find('.js-welcome-image .tokenized-form').length, 'form is visible');\n      assert.ok(!find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is hidden');\n      assert.equal(find('.js-welcome-image .js-logo-preview').attr('src'), 'assets/images/welcome-placeholder.png', 'uses placeholder url');\n    });\n  });\n\n  qunit.test('expanding the tokenized box', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/customize');\n\n    andThen(function () {\n      assert.ok(!find('.js-welcome-image .tokenized-form').length, 'form is hidden');\n      assert.ok(find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is visible');\n      click('.js-welcome-image .btn:contains(Enable)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-welcome-image .tokenized-form').length, 'form is displayed');\n      assert.ok(!find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is not visible');\n    });\n  });\n\n});","define('garaje/tests/acceptance/customize-welcome-image-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/customize-welcome-image-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/customize-welcome-image-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/dashboard-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var application, server, locations;\n  var today = moment().format('YYYY-MM-DD');\n\n  qunit.module('Acceptance: Garaje Dashboard', {\n    beforeEach: function beforeEach() {\n      application = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        pre_registration_enabled: true,\n        cc_receptionist_enabled: false,\n        pre_registration_link: 'https://envoy.co/invites/token_a',\n        security_desk_link: 'https://envoy.co/security/token_a',\n        company: {\n          id: 1\n        },\n        printer: {\n          id: 1\n        },\n        config: {\n          id: 1\n        },\n        current_version: '1.3.0',\n        installed_version: '1.3.0',\n        pubnub_channel_entry: 'a',\n        pubnub_channel_invite: 'b'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n\n        this.get('/api/v1/configs/1', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: 1,\n              location_id: 1,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: { \"id\": 1, \"name\": \"Cool Chip\", \"slack_connected\": false, \"slack_team_name\": null, \"hipchat_connected\": false, \"onboarding_status\": \"complete\" }\n          }];\n        });\n        this.get('/api/v1/printers/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, { printer: { id: 1, enabled: true } }];\n        });\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('pubnub notifications update dashboard', function (assert) {\n    assert.expect(6);\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    var container = undefined,\n        pubnub = undefined,\n        dashDate = undefined,\n        invite = undefined;\n\n    visit('/');\n    andThen(function () {\n      container = application.__container__;\n      pubnub = container.lookup('service:pubnub')._pubnub;\n      dashDate = container.lookup('controller:dashboard').get('selectedDate').toISOString();\n\n      assert.equal(currentPath(), 'protected.dashboard.index', 'goes to dashboard page');\n      assert.ok(!find('.js-entry-feed-item').length, 'there are no entries');\n\n      Ember['default'].run(function () {\n        var entry = {\n          \"id\": 1,\n          \"full_name\": \"Milo the dog\",\n          \"host_name\": 'Kamal',\n          \"agreement_refused\": false,\n          \"sign_in_time\": dashDate,\n          \"sign_out_time\": null,\n          \"user_data\": [{\n            \"field\": \"emailAddress\",\n            \"value\": \"visitor2@email.com\"\n          }]\n        };\n\n        pubnub['ab'](JSON.stringify({ event: 'sign_in', entry: entry }));\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-entry-feed-item').length, 'pushes entry to dashboard');\n      click('a:contains(Pre-Registered)');\n    });\n\n    andThen(function () {\n\n      invite = {\n        \"id\": 1,\n        \"full_name\": \"Abe Lincoln\",\n        \"email\": \"abe@lincoln.com\",\n        \"inviter_name\": \"Aaron Larkin V\",\n        \"expected_arrival_time\": dashDate,\n        \"private_notes\": \"helllooooooo\",\n        \"arrived\": false\n      };\n\n      assert.ok(!find('.js-invite-feed-item').length, 'there are not invites on this date');\n\n      Ember['default'].run(function () {\n        pubnub['ab'](JSON.stringify({ type: 'new_invite', invite: invite }));\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-invite-feed-item').length, 'there is 1 invites on this date');\n      Ember['default'].run(function () {\n        pubnub['ab'](JSON.stringify({ type: 'delete_invite', invite_id: invite.id }));\n      });\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-invite-feed-item').length, 'invite was deleted');\n    });\n  });\n\n  qunit.test('users that have access to the garaje dashboard should click on the dashboard settings link and be taken to the garaje dashboard', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard']\n        }\n      }];\n    });\n\n    visit('/settings/location');\n\n    click('a:contains(Dashboard)');\n\n    andThen(function () {\n      assert.ok(find('.js-formatted-chosen-date').length, 'We are on the garaje dashboard page');\n    });\n  });\n\n  qunit.test('clicking on controls in the dashboard navigation should reflect the current formatted date in the dashboard navigation, and select that day in the calendar', function (assert) {\n    assert.expect(18);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"locale\": \"en\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": true, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"locale\": \"en\", \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n      }];\n    });\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/settings/location');\n\n    click('a:contains(Dashboard)');\n\n    var formattedToday = moment().format('MMMM Do, YYYY');\n    var selectedDay = moment().format('dddd');\n    var todayCalendarString = '.calendar-row td:contains(' + moment().format('D') + ')';\n\n    andThen(function () {\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), selectedDay + '  ' + formattedToday, 'the formatted date displayed on the dashboard matches today\\'s date');\n      assert.ok(find(todayCalendarString).hasClass('current'), 'the calendar has today\\'s day selected');\n      click('.js-dashboard-go-back-a-day');\n    });\n\n    var formattedYesterday = moment().subtract(1, 'days').format('MMMM Do, YYYY');\n    var dayYesterday = moment().subtract(1, 'days').format('dddd');\n    var yesterdayCalendarString = '.calendar-row td:contains(' + moment().subtract(1, 'days').format('D') + ')';\n\n    andThen(function () {\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), dayYesterday + '  ' + formattedYesterday, 'clicking back should make the formatted date displayed on the dashboard equal yesterday');\n      assert.ok(find(yesterdayCalendarString).hasClass('current'), 'the calendar has yesterday\\'s day selected');\n    });\n\n    visit('/dashboard?date=2015-01-22');\n\n    andThen(function () {\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Thursday  January 22nd, 2015', 'going to a specific date should reflect that date');\n      assert.ok(find('.empty-ghost').length, 'the no visitors empty state is shown');\n      assert.ok(find('.calendar-row td:contains(22)').hasClass('current'), 'the calendar has Jan 22 selected');\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/entries', function (request) {\n        assert.equal(request.queryParams.sort_by, 'sign_in_time', 'should request entries sort by sign_in_time');\n        assert.equal(request.queryParams.order, 'desc', 'should request entries sorted descending');\n        return [200, { 'Content-Type': 'application/json' }, {\n          entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T01:27:20.853Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/agreement-f397a/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=YYAzz9xN1fZTuAe07Cr6v9N6yb4%3D', \"thumbnails\": { \"small\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w160-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423179956&Signature=BPnwZDAmv%2BdNv0I4ZDICCaD8FNI%3D', \"big\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w300-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423179956&Signature=lhfR9yjRaCX5JEmSpS3tCcKcLjk%3D' } }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n        }];\n      });\n      server.register('GET', '/api/v1/invites', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          invites: []\n        }];\n      });\n\n      visit('/dashboard?date=2015-01-23');\n    });\n\n    andThen(function () {\n      //need to account for timezones because circleCI is on a different timezone\n      var localTimeZone = moment(\"2015-01-24T01:27:20.853Z\").format('h:mm a');\n      assert.ok(!find('.empty-ghost').length, 'the empty state is not shown');\n      assert.ok(find('.js-entry-feed-item').length, 'there are entries shown');\n      assert.ok(find('.calendar-row td:contains(23)').hasClass('current'), 'the calendar has Jan 23 selected');\n      assert.equal(find('.js-entry-feed-item:eq(1) .js-entry-feed-item-h4').text().trim(), 'Cool Visitor', 'entry feed item has the right name');\n      assert.equal(find('.js-entry-feed-photo:eq(1)').prop('src'), \"https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w160-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423179956&Signature=BPnwZDAmv%2BdNv0I4ZDICCaD8FNI%3D\", 'entry feed item has the correct picture');\n      assert.equal(find('.js-entry-feed-sign-in-time:eq(1)').text().trim(), localTimeZone, 'entry feed-item date is formatted properly');\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/entries', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          entries: []\n        }];\n      });\n      server.register('GET', '/api/v1/invites', function (request) {\n        assert.equal(request.queryParams.sort_by, 'expected_arrival_time', 'should request invites sort by expected_arrival_time');\n        assert.equal(request.queryParams.order, 'asc', 'should request invites sorted descending');\n        return [200, { 'Content-Type': 'application/json' }, {\n          invites: [{ \"id\": 1, \"full_name\": \"Abe Lincoln\", \"email\": \"abe@lincoln.com\", \"inviter_name\": \"Aaron Larkin V\", \"expected_arrival_time\": \"2015-01-27T03:00:00.000Z\", \"private_notes\": \"helllooooooo\", \"arrived\": false }]\n        }];\n      });\n      click('.calendar-row td:contains(26)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Monday  January 26th, 2015', 'clicking on a specific calendar date should go to that date');\n      assert.ok(!find('.js-entry-feed-item').length, 'there are no entries shown');\n      assert.ok(find('.calendar-row td:contains(26)').hasClass('current'), 'the calendar has Jan 26 selected');\n    });\n  });\n\n  qunit.test('clicking the export csv link downloads a csv', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard']\n        }\n      }];\n    });\n    server.register('GET', '/api/v1/entries', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T01:27:20.853Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/agreement-f397a/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=YYAzz9xN1fZTuAe07Cr6v9N6yb4%3D', \"thumbnails\": {} }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n      }];\n    });\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: []\n      }];\n    });\n\n    visit('/dashboard?date=2015-01-23');\n\n    andThen(function () {\n      var host = window.location.host;\n      assert.equal(find('.js-export-data').prop('href'), 'http://' + host + '/entries?date=2015-01-23&location_id=' + locations[0].id, 'linked to the csv');\n    });\n  });\n\n  qunit.test('an invite without private notes should not have empty quotes shown to the user', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: [{ \"id\": 1, \"full_name\": \"Abe Lincoln\", \"email\": \"abe@lincoln.com\", \"inviter_name\": \"Aaron Larkin V\", \"expected_arrival_time\": \"2015-01-27T03:00:00.000Z\", \"private_notes\": \"helllooooooo\", \"arrived\": false }]\n      }];\n    });\n\n    visit('/pre-registered?date=2015-01-23');\n\n    andThen(function () {\n      assert.ok(find('.js-invite-feed-item-message').length, \"Private Notes markup is shown if there are private notes\");\n\n      server.register('GET', '/api/v1/invites', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          invites: [{ \"id\": 1, \"full_name\": \"Abe Lincoln\", \"email\": \"abe@lincoln.com\", \"inviter_name\": \"Aaron Larkin V\", \"expected_arrival_time\": \"2015-01-27T03:00:00.000Z\", \"private_notes\": null, \"arrived\": false }]\n        }];\n      });\n    });\n    visit('/pre-registered?date=2015-01-24');\n\n    andThen(function () {\n      assert.ok(!find('.js-invite-feed-item-message').length, \"Private Notes markup is not shown if there are no private notes\");\n    });\n  });\n\n  qunit.test('been here before checkmark should be shown for relevant invites, empty for new visitors', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: [{ \"id\": 1, \"full_name\": \"Witness Port\", \"email\": \"w@j.com\", \"inviter_name\": \"Braeden Kreiger\", \"expected_arrival_time\": \"2015-03-10T23:00:00.000Z\", \"private_notes\": \"bdnsmbnsd\", \"arrived\": false, \"been_here_before\": true }, { \"id\": 2, \"full_name\": \"Jack Jill\", \"email\": \"jack@jill.com\", \"inviter_name\": \"Brendon Schulist\", \"expected_arrival_time\": \"2015-03-11T01:00:00.000Z\", \"private_notes\": \"sdjkhjkds\", \"arrived\": false, \"been_here_before\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"locale\": \"en\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": true, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"locale\": \"en\", \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/pre-registered?date=2015-01-23');\n\n    andThen(function () {\n      var firstInvite = find('.js-invite-feed-item:eq(0)');\n      var secondInvite = find('.js-invite-feed-item:eq(1)');\n      assert.ok(firstInvite.find('.js-invite-been-here-before').length, 'checkmark should be shown');\n      assert.ok(!secondInvite.find('.js-invite-been-here-before').length, 'checkmark not shown');\n    });\n  });\n\n  qunit.test('been here before column should be hidden if been here before is not enabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: [{ \"id\": 1, \"full_name\": \"Witness Port\", \"email\": \"w@j.com\", \"inviter_name\": \"Braeden Kreiger\", \"expected_arrival_time\": \"2015-03-10T23:00:00.000Z\", \"private_notes\": \"bdnsmbnsd\", \"arrived\": false, \"been_here_before\": true }, { \"id\": 2, \"full_name\": \"Jack Jill\", \"email\": \"jack@jill.com\", \"inviter_name\": \"Brendon Schulist\", \"expected_arrival_time\": \"2015-03-11T01:00:00.000Z\", \"private_notes\": \"sdjkhjkds\", \"arrived\": false, \"been_here_before\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"locale\": \"en\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": true, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"locale\": \"en\", \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": false, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/pre-registered?date=2015-01-23');\n\n    andThen(function () {\n      assert.ok(!find('.js-been-here-before-column').length, 'column hidden');\n    });\n  });\n\n  qunit.test('don\\'t show badge printer icon if an invite has already been fulfilled by a sign in', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: [{ \"id\": 3, \"full_name\": \"Marvin\", \"email\": \"mar@vin.com\", \"inviter_name\": \"Amaya Schimmel PhD\", \"expected_arrival_time\": \"2015-10-16T22:00:00.000Z\", \"private_notes\": \"njkhjk\", \"arrived\": false, \"entry_id\": null, \"been_here_before\": false }, { \"id\": 2, \"full_name\": \"Jo Jo\", \"email\": \"we@we.com\", \"inviter_name\": \"Amaya Schimmel PhD\", \"expected_arrival_time\": \"2015-10-16T22:00:00.000Z\", \"private_notes\": \"njkhjk\", \"arrived\": true, \"entry_id\": 23, \"been_here_before\": true }, { \"id\": 1, \"full_name\": \"Jack J\", \"email\": \"jack@j.com\", \"inviter_name\": \"Amaya Schimmel PhD\", \"expected_arrival_time\": \"2015-10-16T22:00:00.000Z\", \"private_notes\": \"njkhjk\", \"arrived\": false, \"entry_id\": null, \"been_here_before\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/entries/23', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 23, \"full_name\": \"Jo Jo\", \"host_name\": \"Amaya Schimmel PhD\", \"agreement_refused\": false, \"sign_in_time\": \"2015-10-16T23:03:18.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"failed\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Testing\", \"value\": \"testing\" }, { \"field\": \"Your Email Address\", \"value\": \"we@we.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jo Jo\" }, { \"field\": \"Hosted\", \"value\": \"Amaya Schimmel PhD\" }, { \"field\": \"Your Compensation\", \"value\": \"121212\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/23/agreement-ac57f/2015_10_16_16_03_18_Jo_Jo.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1445283243&Signature=lzb2PVMu%2FIVxrwr70jAGl1uJswk%3D', \"thumbnails\": { \"small\": 'https://envoy-development.s3.amazonaws.com/entries/1/23/photo-w160-9ca71/Jo_Jo.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1445283243&Signature=e3bUlH0pE1xyVzracqBhY%2FA7MbY%3D', \"big\": 'https://envoy-development.s3.amazonaws.com/entries/1/23/photo-w300-9ca71/Jo_Jo.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1445283243&Signature=fmyEZdvLJQctUG3YBXjI6zYWEcU%3D' }, \"email\": \"we@we.com\", \"phone_number\": null, \"location_id\": 1, \"location_name\": \"HQ\", \"original_nda_sign_date\": null }\n      }];\n    });\n\n    visit('/pre-registered?date=2015-10-16');\n\n    var firstInvite, secondInvite, thirdInvite;\n\n    andThen(function () {\n      firstInvite = find('.js-invite-feed-item:eq(0)');\n      secondInvite = find('.js-invite-feed-item:eq(1)');\n      thirdInvite = find('.js-invite-feed-item:eq(2)');\n      assert.equal(firstInvite.find('.js-invite-full-name').text().trim(), 'Marvin', 'first invite fullname should be Marvin');\n      assert.ok(firstInvite.find('.js-printer').length, 'first invite should have a printer icon');\n      assert.equal(secondInvite.find('.js-invite-full-name').text().trim(), 'Jo Jo', 'first invite fullname should be Jack Jill');\n      assert.ok(!secondInvite.find('.js-printer').length, 'second invite should not have a printer icon');\n      assert.equal(thirdInvite.find('.js-invite-full-name').text().trim(), 'Jack J', 'first invite fullname should be Jack J');\n      assert.ok(thirdInvite.find('.js-printer').length, 'third invite should have a printer icon');\n      click(firstInvite.find('.js-printer'));\n    });\n\n    click('.js-select-all-invites');\n\n    andThen(function () {\n      server.register('POST', '/api/v1/locations/1/print_badges', function (request) {\n        assert.equal(request.requestBody, 'invite_ids%5B%5D=3&invite_ids%5B%5D=1', 'invite ids 1 and 3 should be passed to print badges');\n\n        return [201];\n      });\n\n      click('.js-preprint-badges-button');\n    });\n  });\n\n  qunit.test('don\\'t show badge print icon if invites but printer is disabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: [{ \"id\": 1, \"full_name\": \"Abe Lincoln\", \"email\": \"abe@lincoln.com\", \"inviter_name\": \"Aaron Larkin V\", \"expected_arrival_time\": \"2015-01-27T03:00:00.000Z\", \"private_notes\": \"helllooooooo\", \"arrived\": false }]\n      }];\n    });\n\n    visit('/pre-registered?date=2015-01-23');\n\n    assert.ok(!find('.visitor-actions .js-printer').length, 'there is no badge printer icon');\n  });\n\n  qunit.test('don\\'t show badge print icon if invites, printer is enabled, but iPad version is too low', function (assert) {\n    assert.expect(1);\n\n    locations[0].installed_version = '1.2.0';\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: [{ \"id\": 1, \"full_name\": \"Abe Lincoln\", \"email\": \"abe@lincoln.com\", \"inviter_name\": \"Aaron Larkin V\", \"expected_arrival_time\": \"2015-01-27T03:00:00.000Z\", \"private_notes\": \"helllooooooo\", \"arrived\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/printers/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, { printer: { id: 1, enabled: true } }];\n    });\n\n    visit('/pre-registered?date=2015-01-23');\n\n    assert.ok(!find('.visitor-actions .js-printer').length, 'there is no badge printer icon');\n  });\n\n  qunit.test('extensive run-through for selecting/de-selecting invites to pre-print badges for, then sending ids off to server and flushing array of selected invites', function (assert) {\n    assert.expect(21);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: [{ \"id\": 1, \"full_name\": \"Witness Port\", \"email\": \"w@j.com\", \"inviter_name\": \"Braeden Kreiger\", \"expected_arrival_time\": \"2015-03-10T23:00:00.000Z\", \"private_notes\": \"bdnsmbnsd\", \"arrived\": false }, { \"id\": 2, \"full_name\": \"Jack Jill\", \"email\": \"jack@jill.com\", \"inviter_name\": \"Brendon Schulist\", \"expected_arrival_time\": \"2015-03-11T01:00:00.000Z\", \"private_notes\": \"sdjkhjkds\", \"arrived\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/printers/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, { printer: { id: 1, enabled: true } }];\n    });\n\n    visit('/pre-registered?date=2015-03-10');\n\n    var firstInvite, secondInvite;\n\n    andThen(function () {\n      firstInvite = find('.js-invite-feed-item:eq(0)');\n      secondInvite = find('.js-invite-feed-item:eq(1)');\n      assert.equal(firstInvite.find('.js-invite-full-name').text().trim(), 'Witness Port', 'first invite fullname should be Witness Port');\n      assert.equal(secondInvite.find('.js-invite-full-name').text().trim(), 'Jack Jill', 'first invite fullname should be Jack Jill');\n      assert.ok(!find('.js-preprint-badges-button').length, 'print preregistered badges button is not visible');\n      assert.ok(!find('.js-select-all-invites').length, 'select all invites button is not visible');\n      click(firstInvite.find('.js-printer'));\n    });\n\n    andThen(function () {\n      assert.equal(firstInvite.find('.preregCheckbox').prop('checked'), true, 'first invite checkbox should be checked');\n      assert.equal(secondInvite.find('.preregCheckbox').prop('checked'), false, 'second invite checkbox should not be checked');\n      assert.ok(find('.js-preprint-badges-button').length, 'print preregistered badges button is visible');\n      assert.ok(find('.js-select-all-invites').length, 'select all invites button is visible');\n\n      click(secondInvite.find('.preregCheckbox'));\n    });\n\n    andThen(function () {\n      assert.equal(secondInvite.find('.preregCheckbox').prop('checked'), true, 'second invite checkbox should be checked');\n      assert.ok(find('.js-deselect-all-invites').length, 'deselect all invites button is visible');\n      click('.js-deselect-all-invites');\n    });\n\n    andThen(function () {\n      assert.ok(!firstInvite.find('.preregCheckbox').length, 'checkboxes should not be visible anymore');\n      assert.ok(!secondInvite.find('.preregCheckbox').length, 'checkboxes should not be visible anymore');\n      assert.ok(!find('.js-preprint-badges-button').length, 'print preregistered badges button is not visible');\n      assert.ok(!find('.js-select-all-invites').length, 'select all invites button is not visible');\n      click(secondInvite.find('.js-printer'));\n    });\n    andThen(function () {\n      click(firstInvite.find('.preregCheckbox'));\n    });\n\n    andThen(function () {\n      assert.equal(firstInvite.find('.preregCheckbox').prop('checked'), true, 'first invite checkbox should be checked');\n      assert.equal(secondInvite.find('.preregCheckbox').prop('checked'), true, 'second invite checkbox should be checked');\n\n      server.register('POST', '/api/v1/locations/1/print_badges', function (request) {\n        assert.equal(request.requestBody, 'invite_ids%5B%5D=1&invite_ids%5B%5D=2', 'client should be posting both selected invite_ids to the server');\n        return [201, { 'Content-Type': 'application/json' }];\n      });\n    });\n\n    click('.js-preprint-badges-button');\n\n    andThen(function () {\n      assert.ok(!firstInvite.find('.preregCheckbox').length, 'checkboxes should not be visible anymore');\n      assert.ok(!secondInvite.find('.preregCheckbox').length, 'checkboxes should not be visible anymore');\n      assert.ok(!find('.js-preprint-badges-button').length, 'print preregistered badges button is not visible');\n      assert.ok(!find('.js-select-all-invites').length, 'select all invites button is not visible');\n    });\n  });\n\n  qunit.test('the number of entries should be correctly pluralized - 1 visitor, 2 visitors', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard']\n        }\n      }];\n    });\n    server.register('GET', '/api/v1/entries', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T01:27:20.853Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/agreement-f397a/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=YYAzz9xN1fZTuAe07Cr6v9N6yb4%3D', \"thumbnails\": {} }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n      }];\n    });\n\n    visit('/dashboard?date=2015-01-23');\n\n    andThen(function () {\n      assert.equal(find('.js-pluralized-visitor-label').text().trim(), \"2 Visitors · Export\", \"With multiple visitors, the word visitors should be properly pluralized\");\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/entries', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n        }];\n      });\n\n      visit('/dashboard?date=2015-01-24');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-pluralized-visitor-label').text().trim(), \"1 Visitor · Export\", \"With multiple visitors, the word visitors should be properly pluralized\");\n    });\n  });\n\n  qunit.test('if a user has pre-registration enabled, they should see the pre-registration bar', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    visit('/dashboard');\n\n    andThen(function () {\n      assert.ok(find('.js-pre-registered-nav').length, 'the user should see the pre-registration link');\n    });\n\n    visit('/pre-registered');\n\n    andThen(function () {\n      assert.ok(find('.js-pre-registration-header').length, 'the user sees the pre-registration header with pre-registration enabled');\n    });\n  });\n\n  qunit.test('if a user has access to pre-registration but doesn\\'t have pre-registration enabled, they shouldn\\'t see the pre-registration link', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/locations', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n      }];\n    });\n\n    visit('/dashboard');\n\n    andThen(function () {\n      assert.ok(!find('.js-pre-registered-nav').length, 'the user should not see the pre-registration link');\n    });\n\n    visit('/pre-registered');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.dashboard.index', 'redirected back to dashboard');\n    });\n  });\n\n  qunit.test('if a user doesnt have access to pre-registration but has pre-registration enabled, they shouldn\\'t see the pre-registration link', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard']\n        }\n      }];\n    });\n\n    visit('/dashboard');\n\n    andThen(function () {\n      assert.ok(!find('.js-pre-registered-nav').length, 'the user should not see the pre-registration link');\n    });\n\n    visit('/pre-registered');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.dashboard.index', 'redirected back to dashboard');\n    });\n  });\n\n  qunit.test('success or fail notification messages should be displayed one by one on individual entries', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard']\n        }\n      }];\n    });\n    server.register('GET', '/api/v1/entries', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": \"Roberto\", \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"failed\", \"email_status\": \"disabled\", \"hipchat_status\": \"sent\", \"slack_status\": \"not_sent\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": \"Kamal\", \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T01:27:20.853Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/agreement-f397a/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=YYAzz9xN1fZTuAe07Cr6v9N6yb4%3D', \"thumbnails\": {} }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n      }];\n    });\n\n    visit('/dashboard?date=2015-01-23');\n\n    andThen(function () {\n      var secondVisitor = find('.js-entry-feed-container:eq(0)');\n      console.log(secondVisitor);\n      assert.ok(secondVisitor.find('.js-sms-status').prop('src').indexOf('/assets/images/red-x-small.svg'), 'sms status is visible and displays failure x');\n      assert.ok(!secondVisitor.find('.js-email-status').length, 'email status is hidden because email notifications are disabled');\n      assert.ok(secondVisitor.find('.js-slack-status').prop('src').indexOf('/assets/images/gray-dash-small.svg'), 'slack status is visible but displays no mark because it hasn\\'t been sent');\n      assert.ok(secondVisitor.find('.js-hipchat-status').prop('src').indexOf('/assets/images/green-check-small.svg'), 'sms status is visible and displays success check');\n    });\n  });\n\n  qunit.test('if a visitor refuses to sign an NDA, a refusal message should be displayed inline on their entry on the dashboard', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard']\n        }\n      }];\n    });\n    server.register('GET', '/api/v1/entries', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": \"Roberto\", \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"failed\", \"email_status\": \"failed\", \"hipchat_status\": \"sent\", \"slack_status\": \"failed\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": \"Kamal\", \"agreement_refused\": true, \"sign_in_time\": \"2015-01-24T01:27:20.853Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": null, \"thumbnails\": {} }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n      }];\n    });\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"locale\": \"en\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": true, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"locale\": \"en\", \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n      }];\n    });\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": true, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/dashboard?date=2015-01-23');\n\n    andThen(function () {\n      var secondVisitor = find('.js-entry-feed-container:eq(0)');\n      var firstVisitor = find('.js-entry-feed-container:eq(1)');\n      assert.ok(!secondVisitor.find('.js-entry-agreement-refused').length, 'the second visitor should not have a agreement refusal notice');\n      assert.ok(firstVisitor.find('.js-entry-agreement-refused').length, 'the first visitor should have a notice reflecting that they refused to sign the NDA');\n    });\n  });\n\n  qunit.test('if a location calendar has events and invites in the current visible month, those events should be indicated, request only fired when months change', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/locations', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/entries/calendar', function (request) {\n      assert.equal(request.queryParams.location_id, '1', 'should pass in correct location id');\n      assert.equal(request.queryParams.date, '2015-02-23', 'should pass in correct date');\n      return [200, { 'Content-Type': 'application/json' }, {\n        calendar: [{ \"entries\": 1, \"invites\": 0, \"date\": \"2015-02-12\" }, { \"entries\": 1, \"invites\": 1, \"date\": \"2015-02-09\" }, { \"entries\": 1, \"invites\": 0, \"date\": \"2015-02-19\" }, { \"entries\": 1, \"invites\": 0, \"date\": \"2015-02-18\" }, { \"entries\": 0, \"invites\": 1, \"date\": \"2015-02-25\" }]\n      }];\n    });\n\n    visit('/dashboard?date=2015-02-23');\n\n    andThen(function () {\n      assert.ok(find('.calendar-row td:contains(9)').find('span').hasClass('entries'), 'the calendar has entries on Feb 9');\n      assert.ok(find('.calendar-row td:contains(12)').find('span').hasClass('entries'), 'the calendar has entries on Feb 12');\n      assert.ok(find('.calendar-row td:contains(18)').find('span').hasClass('entries'), 'the calendar has entries on Feb 18');\n      assert.ok(find('.calendar-row td:contains(19)').find('span').hasClass('entries'), 'the calendar has entries on Feb 19');\n    });\n\n    //going back a day should not fire the assertions in the entries/calendar endpoint\n    click('.js-dashboard-go-back-a-day');\n\n    andThen(function () {\n      //going back a month should fire the assertion\n      server.register('GET', '/api/v1/entries/calendar', function (request) {\n        assert.equal(request.queryParams.date, '2015-01-22', 'should pass in correct date');\n        return [200, { 'Content-Type': 'application/json' }, {\n          calendar: [{ \"entries\": 1, \"invites\": 0, \"date\": \"2015-01-12\" }, { \"entries\": 1, \"invites\": 1, \"date\": \"2015-01-09\" }, { \"entries\": 1, \"invites\": 0, \"date\": \"2015-01-19\" }, { \"entries\": 1, \"invites\": 0, \"date\": \"2015-01-18\" }, { \"entries\": 0, \"invites\": 1, \"date\": \"2015-01-25\" }]\n        }];\n      });\n\n      click('i.previous');\n    });\n  });\n\n  qunit.test('clicking sign out button in an entry feed should sign out that visitor entry', function (assert) {\n    assert.expect(5);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard']\n        }\n      }];\n    });\n    server.register('GET', '/api/v1/entries', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": \"Roberto\", \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"failed\", \"email_status\": \"failed\", \"hipchat_status\": \"sent\", \"slack_status\": \"failed\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": \"Kamal\", \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T01:27:20.853Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/agreement-f397a/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=YYAzz9xN1fZTuAe07Cr6v9N6yb4%3D', \"thumbnails\": {} }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n      }];\n    });\n\n    visit('/dashboard?date=2015-01-23');\n\n    var secondVisitor;\n\n    andThen(function () {\n      secondVisitor = find('.js-entry-feed-container').eq(0);\n      assert.ok(!secondVisitor.find('.js-entry-feed-sign-out-time').length, 'entry should not have a sign out time');\n    });\n\n    andThen(function () {\n      var now = new Date();\n      server.register('PUT', '/api/v1/entries/2', function (request) {\n        var body = JSON.parse(request.requestBody).entry;\n        assert.equal(moment(body.sign_out_time).format('MMMM Do YYYY, h:mm'), moment(now).format('MMMM Do YYYY, h:mm'), 'correct sign out time sent to server');\n        return [200, { 'Content-Type': 'application/json' }, {\n          entry: { \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": \"Roberto\", \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": \"2015-01-24T03:27:22.172Z\", \"sms_status\": \"failed\", \"email_status\": \"failed\", \"hipchat_status\": \"sent\", \"slack_status\": \"failed\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }\n        }];\n      });\n\n      click(secondVisitor.find('.js-entry-feed-sign-out'));\n    });\n\n    andThen(function () {\n      assert.ok(!secondVisitor.find('.js-entry-feed-sign-out').length, 'sign out button has disappeared');\n      assert.ok(secondVisitor.find('.js-entry-feed-sign-out-time').length, 'sign out time is now visible');\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('if a user hits the month back/forward arrow on the calendar, s/he should be taken to the same date a month before/after', function (assert) {\n    assert.expect(3);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/locations', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n      }];\n    });\n\n    visit('/dashboard?date=2015-02-23');\n\n    click('i.previous');\n\n    andThen(function () {\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Friday  January 23rd, 2015', 'clicking back takes the user back one month');\n    });\n\n    click('i.next');\n\n    andThen(function () {\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Monday  February 23rd, 2015', 'clicking next takes the user forward one month');\n    });\n\n    click('i.next');\n\n    andThen(function () {\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Monday  March 23rd, 2015', 'clicking next takes the user forward one month');\n    });\n  });\n\n  qunit.test('with a search param it passes on the query', function (assert) {\n    assert.expect(6);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n    server.register('GET', '/api/v1/entries', function (request) {\n      assert.equal(request.queryParams.query, 'test', 'should request entries filtered by query');\n      return [200, { 'Content-Type': 'application/json' }, {\n        entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T01:27:20.853Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/agreement-f397a/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=YYAzz9xN1fZTuAe07Cr6v9N6yb4%3D', \"thumbnails\": { \"small\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w160-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423179956&Signature=BPnwZDAmv%2BdNv0I4ZDICCaD8FNI%3D', \"big\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w300-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423179956&Signature=lhfR9yjRaCX5JEmSpS3tCcKcLjk%3D' } }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n      }];\n    });\n\n    visit('/dashboard?query=test');\n\n    andThen(function () {\n      assert.ok(find('input.pageSearch').length, 'there is a text search field');\n      assert.ok(find('.js-entry-feed-item').length, 'there are entries shown');\n      assert.equal(find('.js-dashboard-header-title').text().trim(), 'Visitors matching \"test\"', 'header has the right title');\n      assert.equal(find('.js-entry-feed-item:eq(0) .js-entry-feed-item-h4').text().trim(), '2nd visitor', 'entry feed item has the right name');\n      assert.equal(find('.js-entry-feed-item:eq(1) .js-entry-feed-item-h4').text().trim(), 'Cool Visitor', 'entry feed item has the right name');\n    });\n  });\n\n  qunit.test('filling the search field passes on the query and hides the day bar', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    visit('/dashboard');\n\n    andThen(function () {\n      server.register('GET', '/api/v1/entries', function (request) {\n        assert.equal(request.queryParams.query, 'test', 'should request entries filtered by query');\n        return [200, { 'Content-Type': 'application/json' }, {\n          entries: [{ \"id\": 2, \"full_name\": \"2nd visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T03:27:22.172Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-078af/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=mGA7yd1E0P1yCFYbPMKQLmOrQAk%3D', \"thumbnails\": {} }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-01-24T01:27:20.853Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/agreement-f397a/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422409717&Signature=YYAzz9xN1fZTuAe07Cr6v9N6yb4%3D', \"thumbnails\": { \"small\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w160-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423179956&Signature=BPnwZDAmv%2BdNv0I4ZDICCaD8FNI%3D', \"big\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w300-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423179956&Signature=lhfR9yjRaCX5JEmSpS3tCcKcLjk%3D' } }], \"meta\": { \"all_total\": 2, \"total\": 2 }\n        }];\n      });\n      fillIn('input.pageSearch', 'test');\n\n      andThen(function () {\n        assert.ok(find('input.pageSearch').length, 'there is a text search field');\n        assert.ok(!find('.js-day-bar').length, 'day bar is hidden');\n        assert.ok(find('.js-entry-feed-item').length, 'there are entries shown');\n        assert.equal(find('.js-dashboard-header-title').text().trim(), 'Visitors matching \"test\"', 'header has the right title');\n        assert.equal(find('.js-entry-feed-item:eq(0) .js-entry-feed-item-h4').text().trim(), '2nd visitor', 'entry feed item has the right name');\n        assert.equal(find('.js-entry-feed-item:eq(1) .js-entry-feed-item-h4').text().trim(), 'Cool Visitor', 'entry feed item has the right name');\n      });\n    });\n  });\n\n  qunit.test('with search pubnub notifications does not push entry', function (assert) {\n    assert.expect(3);\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    var container = undefined,\n        pubnub = undefined,\n        dashDate = undefined;\n\n    visit('/dashboard?query=test');\n    andThen(function () {\n      container = application.__container__;\n      pubnub = container.lookup('service:pubnub')._pubnub;\n      dashDate = container.lookup('controller:dashboard').get('selectedDate').toISOString();\n\n      assert.equal(currentPath(), 'protected.dashboard.index', 'goes to dashboard page');\n      assert.ok(!find('.js-entry-feed-item').length, 'there are not entries');\n\n      Ember['default'].run(function () {\n        var entry = {\n          \"id\": 1,\n          \"full_name\": \"Milo the dog\",\n          \"host_name\": 'Kamal',\n          \"agreement_refused\": false,\n          \"sign_in_time\": dashDate,\n          \"sign_out_time\": null,\n          \"user_data\": [{\n            \"field\": \"emailAddress\",\n            \"value\": \"visitor2@email.com\"\n          }]\n        };\n\n        pubnub['ab'](JSON.stringify({ event: 'sign_in', entry: entry }));\n      });\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-entry-feed-item').length, 'there are still no entries');\n    });\n  });\n\n  qunit.test('filling the search field in the pre-registration page passes on the query, hides the day bar', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['dashboard', 'pre_registration']\n        }\n      }];\n    });\n\n    visit('/pre-registered');\n\n    andThen(function () {\n      assert.equal(find('.js-pre-registration-header').text().trim(), 'Pre-registered', 'header has the right title');\n      assert.ok(find('.js-invite-day-bar').length, 'invite day bar is shown');\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/invites', function (request) {\n        assert.equal(request.queryParams.query, 'test', 'should request entries filtered by query');\n        return [200, { 'Content-Type': 'application/json' }, {\n          invites: [{\n            id: 1,\n            full_name: \"Abe Lincoln\",\n            email: \"abe@lincoln.com\",\n            inviter_name: \"Aaron Larkin V\",\n            expected_arrival_time: \"2015-01-27T03:00:00.000Z\",\n            private_notes: null,\n            arrived: false\n          }, {\n            id: 2,\n            full_name: \"Barack Obama\",\n            email: \"barack@obama.com\",\n            inviter_name: \"Aaron Larkin V\",\n            expected_arrival_time: \"2015-01-27T03:00:00.000Z\",\n            private_notes: null,\n            arrived: false\n          }]\n        }];\n      });\n\n      fillIn('input.pageSearch', 'test');\n    });\n\n    andThen(function () {\n      assert.ok(find('input.pageSearch').length, 'there is a text search field');\n      assert.equal(find('.js-pre-registration-header').text().trim(), 'Pre-registrations matching \"test\"', 'header has the right title');\n      assert.ok(!find('.js-invite-day-bar').length, 'invite day bar is hidden');\n      var formattedDate = moment('2015-01-27T03:00:00.000Z').format('h:mm a  MMM D, YYYY');\n      assert.equal($(find('.js-expected-arrival-time').get(0)).text().trim().replace(/\\n/, ''), formattedDate, 'shows full date');\n    });\n  });\n\n});","define('garaje/tests/acceptance/dashboard-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/dashboard-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/dashboard-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/disabled-location-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/parse-post-data'], function (Ember, qunit, startApp, stubConfirm, Pretender, FactoryGuy, parsePostData) {\n\n  'use strict';\n\n  var App, server, loc, company;\n\n  var text = function text(element) {\n    return element.text().trim().replace(/\\s+/g, ' ');\n  };\n\n  qunit.module('Acceptance: Disabled location', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n      company = FactoryGuy['default'].build('company', {\n        name: 'Acme',\n        onboarding_status: 'complete'\n      })['company'];\n\n      loc = FactoryGuy['default'].build('location', {\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        disabled: true,\n        primary: true\n      })['location'];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['multi_location', 'location_switcher', 'billing']\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: [loc] }];\n        });\n        this.get('/api/v1/companies/1', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.put('/api/v1/locations/' + loc.id, function (request) {\n          var requestBody = JSON.parse(request.requestBody).location;\n          assert.ok(requestBody.disabled !== loc.disabled, 'location is ' + (requestBody.disabled ? 'disabled' : 'enabled'));\n          loc.disabled = requestBody.disabled;\n          return [200, { 'Content-Type': 'application/json' }, { location: loc }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n        this.get('/api/v1/plans/standard', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }\n          }];\n        });\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('displays the disabled banner', function (assert) {\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      // banner\n      var banner = find('.js-liquid-disabled-location .js-is-disabled');\n      assert.ok(banner.is(':visible'), 'banner is visible');\n      assert.ok(banner.find(':contains(This location is inactive)'), 'has copy');\n      assert.ok(banner.find('.btn:contains(Activate)').length, 'activate button is visible');\n      assert.ok(!find('.js-disable-location .btn').length, 'disable button not visible');\n    });\n  });\n\n  qunit.test('clicking on the enable button', function (assert) {\n    assert.expect(13);\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    var banner, switcher;\n\n    andThen(function () {\n      banner = find('.js-liquid-disabled-location .js-is-disabled');\n      switcher = find('ic-menu-item:contains(SF)');\n\n      assert.ok(banner.is(':visible'), 'banner is visible');\n      assert.ok(switcher.hasClass('disabled'), 'switcher menu item has disabled badge');\n\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        var subscription = parsePostData['default'](request.requestBody).subscription;\n        assert.equal(subscription.quantity, 1, 'quantity is increased just in time');\n        assert.ok(!('plan' in subscription), 'plan is not passed in');\n        assert.ok(!('period' in subscription), 'period is not passed in');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      // enable the location\n      click(banner.find('.btn'));\n    });\n\n    andThen(function () {\n      banner = find('.js-liquid-disabled-location .js-is-disabled');\n      switcher = find('ic-menu-item:contains(SF)');\n\n      assert.ok(!banner.is(':visible'), 'banner is not visible');\n      assert.ok(!switcher.hasClass('disabled'), 'switcher menu item has no badge');\n\n      var disableBtn = find('.js-disable-location .btn');\n      assert.ok(disableBtn.length, 'disable button is visible');\n\n      // re-disable the location\n      stubConfirm['default'](assert, true, function () {\n        click(disableBtn);\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-liquid-disabled-location .js-is-disabled').is(':visible'), 'banner is visible again');\n      assert.ok(find('ic-menu-item:contains(SF)').hasClass('disabled'), 'switcher menu item has disabled badge again');\n    });\n  });\n\n  qunit.test('on trial, with insufficient quantity', function (assert) {\n    assert.expect(5);\n\n    var banner;\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      banner = find('.js-liquid-disabled-location .js-is-disabled');\n      assert.ok(banner.find(':contains(You can have unlimited active locations while on trial.)').length, 'unlimited location copy');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        var subscription = parsePostData['default'](request.requestBody).subscription;\n        assert.equal(subscription.quantity, 1, 'quantity is increased just in time');\n        assert.ok(!('plan' in subscription), 'plan is not passed in');\n        assert.ok(!('period' in subscription), 'period is not passed in');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click(banner.find('.btn:contains(Activate)'));\n    });\n  });\n\n  qunit.test('on standard, with enough credits', function (assert) {\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['billing'],\n          plan: 'standard',\n          period: 'yearly',\n          quantity: 1\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      var banner = find('.js-liquid-disabled-location .js-is-disabled');\n      assert.ok(banner.find(':contains(Activate this location for no additional charge)').length, 'no charge copy');\n    });\n  });\n\n  qunit.test('on standard, with insufficient credits', function (assert) {\n    assert.expect(10);\n\n    server.register('GET', '/api/v1/locations', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [loc, // the location we want to enable\n        FactoryGuy['default'].build('location', {\n          name: 'NY',\n          company: {\n            id: company.id\n          },\n          disabled: false\n        })['location']]\n      }];\n    });\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['billing'],\n          plan: 'standard',\n          period: 'yearly',\n          quantity: 1,\n          period_start: new Date().getTime() / 1000\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      assert.ok(find('.js-upgrade-plan-banner:contains($2,988/yr)').length, 'upgrade banner is shown with the right price');\n\n      var existingLocation = find('.js-line-item-location:eq(0)');\n      assert.equal(existingLocation.find('.js-line-item-price').text().trim(), '$2,988.00', 'displays premium price');\n      assert.ok(existingLocation.hasClass('priceUpdated'), 'its highlighted');\n\n      var newLocation = find('.js-line-item-location:eq(1)');\n      assert.equal(newLocation.find('.js-line-item-price').text().trim(), '$2,988.00', 'displays premium price');\n      assert.ok(newLocation.hasClass('priceUpdated'), 'its highlighted');\n    });\n\n    // open up debug panel\n    click('tr.js-total-now');\n\n    andThen(function () {\n      assert.ok(find('.js-ledger-refund').text().indexOf('1 x Standard yearly at $99/mo') > -1, 'displays the refund of 1 x standard');\n      assert.ok(find('.js-ledger-charge').text().indexOf('2 x Premium yearly at $249/mo') > -1, 'displays the charge of 2 x premium');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        var subscription = parsePostData['default'](request.requestBody).subscription;\n        assert.equal(subscription.quantity, 2, 'quantity is increased just in time');\n        assert.equal(subscription.plan, 'premium', 'plan is changed to premium just in time');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click('.btn:contains(Upgrade and Activate)');\n    });\n  });\n\n  qunit.test('on premium, with enough credits', function (assert) {\n    assert.expect(2);\n\n    var banner;\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['multi_location', 'location_switcher', 'billing'],\n          plan: 'premium',\n          period: 'yearly',\n          quantity: 1\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      banner = find('.js-liquid-disabled-location .js-is-disabled');\n      assert.ok(banner.find(':contains(Activate this location for no additional charge)').length, 'no charge copy');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        assert.ok(false, 'subscription should not be updated');\n      });\n\n      click(banner.find('.btn:contains(Activate)'));\n    });\n  });\n\n  qunit.test('on premium, with insufficient credits', function (assert) {\n    assert.expect(3);\n\n    var banner;\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['multi_location', 'location_switcher', 'billing'],\n          plan: 'premium',\n          period: 'yearly',\n          quantity: 0\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      banner = find('.js-liquid-disabled-location .js-is-disabled');\n      assert.equal(text(banner.find('p')), 'Activating this location will add $2,988/yr to your subscription.', 'will charge copy');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        var subscription = parsePostData['default'](request.requestBody).subscription;\n        assert.equal(subscription.quantity, 1, 'quantity is increased just in time');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      click(banner.find('.btn:contains(Activate)'));\n    });\n  });\n\n  qunit.test('disabled locations should not be able to be activated by non-master accounts', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['location_switcher']\n        }\n      }];\n    });\n\n    var locations = [FactoryGuy['default'].build('location', {\n      name: 'NY',\n      company: {\n        id: 1\n      },\n      disabled: true\n    })['location'], FactoryGuy['default'].build('location', {\n      name: 'SF',\n      company: {\n        id: 1\n      },\n      primary: true\n    })['location']];\n\n    server.register('GET', '/api/v1/locations', function (request) {\n      return [200, { \"Content-Type\": \"application/json\" }, { locations: locations }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    click('.js-mainHeader-location-trigger');\n\n    var menuItem;\n\n    andThen(function () {\n      menuItem = find('ic-menu-item:contains(NY)');\n      assert.ok(menuItem.hasClass('disabled'));\n      click(menuItem);\n    });\n\n    var banner;\n\n    andThen(function () {\n      banner = find('.js-liquid-disabled-location .js-is-disabled');\n\n      assert.ok(banner.is(':visible'), 'banner is visible');\n      assert.equal(banner.find('h2').text().trim(), 'This location is inactive.', 'correct h2 text');\n      assert.equal(banner.find('p').text().trim(), 'Please contact your admin to enable this location.', 'prompts user to ask their admin');\n    });\n  });\n\n});","define('garaje/tests/acceptance/disabled-location-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/disabled-location-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/disabled-location-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/document-title-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/ember-simple-auth'], function (Ember, qunit, startApp, Pretender, FactoryGuy, ember_simple_auth) {\n\n  'use strict';\n\n  var application, server, router, company, originalTitle;\n\n  qunit.module('Application: Document titles', {\n    beforeEach: function beforeEach() {\n      application = startApp['default']();\n      company = FactoryGuy['default'].build('company', {\n        id: 1,\n        slack_team_name: 'Envoy',\n        slack_connected: true,\n        hipchat_connected: true,\n        name: 'Acme'\n      })['company'];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['billing']\n            }\n          }];\n        });\n\n        this.get('/api/v1/plans/standard', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plans: {\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }\n          }];\n        });\n\n        this.get('/api/v1/plans', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plans: [{\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }, {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }, {\n              id: 'enterprise',\n              name: 'Enterprise',\n              yearly_price: 499\n            }]\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              name: 'SF',\n              config_id: 1,\n              badge_id: 1,\n              admin_id: 1,\n              printer_id: 1,\n              company_id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/admins/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'master@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 2,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/configs/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: [{\n              id: 1,\n              location_id: 1,\n              slideshows: [],\n              integrations: []\n            }]\n          }];\n        });\n\n        this.get('/api/v1/badges/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            badge: [{\n              id: 1,\n              sample_photo_path: '/foo.jpg'\n            }]\n          }];\n        });\n\n        this.get('/api/v1/printers/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            printer: [{\n              id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n\n        this.get('/api/v1/employees', function () {\n          return [200, { 'Content-Type': 'application/json' }, { employees: [] }];\n        });\n\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n\n      originalTitle = document.title;\n\n      router = application.__container__.lookup('router:main');\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      server.shutdown();\n      document.title = originalTitle;\n    }\n  });\n\n  qunit.test('has access to multiple locations', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{\n          id: 1,\n          name: 'SF',\n          config_id: 1,\n          badge_id: 1,\n          admin_id: 1,\n          company_id: 1\n        }, {\n          id: 2,\n          name: 'NY',\n          config_id: 2,\n          badge_id: 2,\n          admin_id: 2,\n          company_id: 1\n        }]\n      }];\n    });\n\n    visit('/settings/account');\n\n    andThen(function () {\n      assert.equal(document.title, 'Account Settings · Acme SF · Envoy');\n    });\n  });\n\n  qunit.test('if a company name is undefined, the title should never display undefined', function (assert) {\n    assert.expect(1);\n\n    var undefinedCompany = FactoryGuy['default'].build('company', {\n      id: 1,\n      slack_team_name: 'Envoy',\n      slack_connected: true,\n      hipchat_connected: true,\n      name: null\n    })['company'];\n\n    server.register('GET', '/api/v1/companies/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: undefinedCompany\n      }];\n    });\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{\n          id: 1,\n          name: 'SF',\n          config_id: 1,\n          badge_id: 1,\n          admin_id: 1,\n          company_id: 1\n        }, {\n          id: 2,\n          name: 'NY',\n          config_id: 2,\n          badge_id: 2,\n          admin_id: 2,\n          company_id: 1\n        }]\n      }];\n    });\n\n    visit('/settings/account');\n\n    andThen(function () {\n      assert.equal(document.title, 'Account Settings · SF · Envoy', 'if undefined, should not display company name and location name');\n    });\n  });\n\n  qunit.test('login', function (assert) {\n    assert.expect(1);\n\n    ember_simple_auth.invalidateSession(application);\n\n    visit('/');\n\n    andThen(function () {\n      assert.equal(document.title, 'Log in to Envoy');\n    });\n  });\n\n  qunit.test('location', function (assert) {\n    assert.expect(1);\n    visit('/settings/account');\n    andThen(function () {\n      assert.equal(document.title, 'Account Settings · Envoy');\n    });\n  });\n\n  qunit.test('ipad', function (assert) {\n    assert.expect(1);\n    visit('/settings/ipad');\n    andThen(function () {\n      assert.equal(document.title, 'iPad Settings · Envoy');\n    });\n  });\n\n  qunit.test('badge', function (assert) {\n    assert.expect(1);\n\n    visit('/settings/badge');\n    andThen(function () {\n      assert.equal(document.title, 'Badge Settings · Envoy');\n    });\n  });\n\n  qunit.test('notifications', function (assert) {\n    assert.expect(1);\n    visit('/settings/notifications');\n    andThen(function () {\n      assert.equal(document.title, 'Notification Settings · Envoy');\n    });\n  });\n\n  qunit.test('pre-registration upgrade', function (assert) {\n    assert.expect(1);\n    visit('/settings/pre-registration');\n    andThen(function () {\n      assert.equal(document.title, 'Pre-Registration Upgrade · Envoy');\n    });\n  });\n\n  qunit.test('billing', function (assert) {\n    assert.expect(1);\n    visit('/settings/billing');\n    andThen(function () {\n      assert.equal(document.title, 'Billing · Envoy');\n    });\n  });\n\n  qunit.test('plans', function (assert) {\n    assert.expect(1);\n    visit('/settings/billing/plans');\n    andThen(function () {\n      assert.equal(document.title, 'Plans · Billing · Envoy');\n    });\n  });\n\n  qunit.test('subscribe', function (assert) {\n    assert.expect(1);\n    visit('/settings/billing/subscribe?period=yearly&plan=standard');\n    andThen(function () {\n      assert.equal(document.title, 'Subscribe · Billing · Envoy');\n    });\n  });\n\n  qunit.test('dashboard', function (assert) {\n    server.register('GET', '/api/v1/invites', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        invites: []\n      }];\n    });\n    server.register('GET', '/api/v1/entries', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entries: []\n      }];\n    });\n    assert.expect(1);\n    visit('/dashboard');\n    andThen(function () {\n      assert.equal(document.title, 'Dashboard · Envoy');\n    });\n  });\n\n  qunit.test('employees', function (assert) {\n    assert.expect(1);\n    visit('/employees');\n    andThen(function () {\n      assert.equal(document.title, 'Employees · Envoy');\n    });\n  });\n\n  qunit.test('new location', function (assert) {\n    assert.expect(1);\n    visit('/settings/new-location');\n    andThen(function () {\n      assert.equal(document.title, 'Add New Location · Envoy');\n    });\n  });\n\n  qunit.test('new location', function (assert) {\n    assert.expect(1);\n    visit('/settings/kamal');\n    andThen(function () {\n      assert.equal(document.title, 'Not Found · Envoy');\n    });\n  });\n\n  qunit.test('entry', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"item1\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      assert.equal(document.title, 'Jake Adams · 02-02-2015 · Envoy');\n    });\n  });\n\n});","define('garaje/tests/acceptance/document-title-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/document-title-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/document-title-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/employees/google-sync-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'garaje/tests/fixtures/employee', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, stubConfirm, __dep4__, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var application, locations, server, company;\n\n  var googleApp = undefined;\n\n  qunit.module('Acceptance | Employees > Sync | With Google Apps', {\n    beforeEach: function beforeEach() {\n      application = startApp['default']();\n      company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme',\n        employees_last_sync_at: moment().format(),\n        employees_sync_state: 'finished'\n      })['company'];\n\n      var employee = FactoryGuy['default'].build('employee')['employee'];\n\n      googleApp = {\n        attributes: {\n          created_at: \"2015-06-02T21:02:06Z\",\n          email: \"kamal@envoy.co\",\n          enabled: true,\n          filters: {\n            type: 'unfiltered'\n          }\n        },\n        id: 1,\n        relationships: {\n          company: {\n            data: {\n              id: 1,\n              type: 'company'\n            }\n          }\n        },\n        type: 'google-apps'\n      };\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        primary: true,\n        samlLocationId: 'http://sd.saml.com'\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'New York',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        samlLocationId: 'http://ny.saml.com'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: []\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/employees', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: [employee],\n            meta: {\n              total: 1,\n              totalPages: 1\n            }\n          }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: [googleApp]\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      googleApp = Ember['default'].copy(googleApp);\n    }\n  });\n\n  qunit.test('sync info when synced successfully', function (assert) {\n    assert.expect(6);\n    company.employees_last_sync_at = moment().subtract('hour', 5).format();\n    company.employees_sync_state = 'finished';\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings');\n      assert.ok(find('.js-sync-settings-google').length, 'displays google sync component');\n      assert.ok(!find('b:contains(Last Sync failed)').length, 'does not show sync failure since last sync succeeded');\n      assert.ok(find('p:contains(Last Sync: 5 hours ago)').length, 'show last sync message');\n      assert.ok(find('a:contains(Sync now)').length, 'has sync button');\n\n      server.post('/api/v2/employees/synchronize', function (request) {\n        assert.ok(true, 'did post to synchronize');\n\n        return [201, { \"Content-Type\": \"application/json\" }, {}];\n      });\n    });\n\n    click('.js-sync-settings-google a:contains(Sync now)');\n  });\n\n  qunit.test('sync info when last sync failed', function (assert) {\n    assert.expect(5);\n\n    company.employees_sync_state = 'errored';\n    googleApp.attributes['error-state'] = 'reconnect';\n    googleApp.attributes['error-message'] = 'things went south';\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings');\n      assert.ok(find('b:contains(Last Sync failed)').length, 'shows sync failure');\n      assert.ok(!find('p:contains(Last Sync: a few seconds ago)').length, 'does not show last sync info (since it failed)');\n      assert.ok(!find('a:contains(Sync now)').length, 'does not show sync button');\n\n      assert.ok(find('span:contains(things went south)').length, 'shows failure message');\n    });\n  });\n\n  qunit.test('Editing sync info', function (assert) {\n    assert.expect(1);\n\n    visit('/employees/sync-settings');\n\n    click('.js-sync-settings-google a:contains(Edit)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'goes to enabled integrations');\n    });\n  });\n\n  qunit.test('With sync all as the filter ', function (assert) {\n    assert.expect(3);\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.ok(!find('.js-sync-company-wide-options').length, 'does not show options for company wide filters ');\n      assert.ok(!find('.js-sync-per-location-options').length, 'does not show options for per locations filters ');\n      assert.ok(find('.active:contains(Sync all employees)').length, 'shows Sync all as active');\n    });\n  });\n\n  qunit.test('Setting company wide filters ', function (assert) {\n    assert.expect(15);\n\n    visit('/employees/sync-settings');\n    andThen(function () {\n      assert.ok(!find('.js-sync-company-wide-options').length, 'does not show options for company wide filters ');\n    });\n    click('dt:contains(Sync specific employees company-wide)');\n    andThen(function () {\n      assert.ok(find('.js-sync-company-wide-options').length, 'show options for company wide filters ');\n      assert.ok(!find('.js-sync-company-wide-options button:contains(Save Filter)').length, 'Save filter is not displayed until filter has been tested');\n      assert.ok(!find('.js-sync-company-wide-options .js-sync-list').length, 'js-sync-list is not displayed');\n\n      server.patch('/api/v2/integrations/google-apps/1', function (request) {\n        assert.ok(true, 'did put');\n        // we can improve this once we are actually sending json\n        var googleApp = JSON.parse(request.requestBody);\n\n        assert.equal(googleApp.data.attributes.filters.type, 'company', 'sets company filter');\n\n        assert.equal(googleApp.data.attributes.filters.data.query, 'isAdmin=true', 'sets query');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n      server.get('/api/v2/integrations/google-apps/1/users', function (request) {\n        return [404, { \"Content-Type\": \"application/json\" }, {\n          \"errors\": [],\n          \"meta\": {\n            \"message\": \"Please check the format of your query\",\n            \"status\": 400\n          }\n        }];\n      });\n    });\n    fillIn('.js-sync-company-wide-options input', 'lol=true');\n    click('button:contains(Test Filter)');\n    andThen(function () {\n      assert.ok(find('.messageBar.error.showFlash').length, 'shows error');\n      server.get('/api/v2/integrations/google-apps/1/users', function (request) {\n        assert.ok(true, 'did users query');\n\n        return [200, { \"Content-Type\": \"application/json\" }, {\n          data: [{\n            \"email\": \"tony@envoy.co\",\n            \"first_name\": \"Tony\",\n            \"last_name\": \"Stark\",\n            \"phones\": [{\n              \"type\": \"mobile\",\n              \"value\": \"2222348230\"\n            }]\n          }]\n        }];\n      });\n    });\n\n    fillIn('.js-sync-company-wide-options input', 'isAdmin=true');\n    click('button:contains(Test Filter)');\n\n    andThen(function () {\n      assert.ok(!find('.messageBar.error.showFlash').length, 'hides error message');\n      assert.ok(find('.js-sync-company-wide-options .js-sync-list').length, 'js-sync-list is displayed');\n      assert.ok(find('.js-csv-imported-list tr').length > 1, 'displays filter results');\n      assert.ok(find('.js-sync-company-wide-options button:contains(Save Filter)').length, 'displays save filter button');\n    });\n    click('.js-sync-company-wide-options button:contains(Save Filter)');\n\n    fillIn('.js-sync-company-wide-options input', 'isAdmin=false');\n    click('button:contains(Test Filter)');\n    click('.js-sync-company-wide-options button:contains(Cancel)');\n    andThen(function () {\n      assert.equal(find('.js-sync-company-wide-options input').val(), 'isAdmin=true', 'resets query');\n    });\n  });\n\n  qunit.test('Setting locations wide filters ', function (assert) {\n    assert.expect(13);\n    visit('/employees/sync-settings');\n    andThen(function () {\n      assert.ok(!find('.js-sync-per-location-options').length, 'does not show options for company wide filters ');\n    });\n    click('dt:contains(Sync specific employees per-location)');\n    andThen(function () {\n      assert.ok(find('.js-sync-per-location-options').length, 'show options for company wide filters ');\n      assert.ok(!find('.js-sync-per-location-options button:contains(Save Filter)').length, 'Save filter is not displayed until filter has been tested');\n      assert.ok(!find('.js-sync-per-location-options .js-sync-list').length, 'js-sync-list is not displayed');\n\n      server.patch('/api/v2/integrations/google-apps/1', function (request) {\n        var googleApp = JSON.parse(request.requestBody);\n\n        assert.equal(googleApp.data.attributes.filters.type, 'locations', 'sets locations filter');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n\n      server.get('/api/v2/integrations/google-apps/1/users', function (request) {\n        return [404, { \"Content-Type\": \"application/json\" }, {\n          \"errors\": [],\n          \"meta\": {\n            \"message\": \"Please check the format of your query\",\n            \"status\": 400\n          }\n        }];\n      });\n    });\n\n    fillIn('.js-sync-per-location-options input:eq(0)', 'isCat=true');\n    keyEvent('.js-sync-per-location-options input:eq(0)', 'keyup', 46);\n    fillIn('.js-sync-per-location-options input:eq(1)', 'isDog=true');\n    keyEvent('.js-sync-per-location-options input:eq(1)', 'keyup', 46);\n\n    click('button:contains(Test Filter)');\n    andThen(function () {\n      assert.ok(find('.messageBar.error.showFlash').length, 'shows error');\n\n      server.get('/api/v2/integrations/google-apps/1/users', function (request) {\n        if (request.queryParams['data[query]'] === 'isCat=true') {\n          assert.ok(true, 'did send query data for location 1');\n        }\n\n        if (request.queryParams['data[query]'] === 'isDog=true') {\n          assert.ok(true, 'did send query data for location 2');\n        }\n\n        return [200, { \"Content-Type\": \"application/json\" }, {\n          data: [{\n            \"email\": \"tony@envoy.co\",\n            \"first_name\": \"Tony\",\n            \"last_name\": \"Stark\",\n            \"phones\": [{\n              \"type\": \"mobile\",\n              \"value\": \"2222348230\"\n            }]\n          }]\n        }];\n      });\n    });\n    click('button:contains(Test Filter)');\n    andThen(function () {\n      assert.ok(!find('.messageBar.error.showFlash').length, 'hides error');\n      assert.ok(find('.js-sync-per-location-options .js-sync-list').length, 'js-sync-list is displayed');\n      assert.ok(find('.js-csv-imported-list tr').length > 1, 'displays filter results');\n      assert.ok(find('.js-sync-per-location-options button:contains(Save Filter)').length, 'displays save filter button');\n    });\n    click('.js-sync-per-location-options button:contains(Save Filter)');\n    click('dt:contains(Sync all employees)');\n    click('button:contains(Test Filter)');\n    click('button:contains(Cancel)');\n    andThen(function () {\n      assert.ok(!find('.csvConfirmImport').length, 'test result is hidden when going back to filter');\n    });\n  });\n\n  qunit.test('turning off/on sync all', function (assert) {\n    assert.expect(8);\n\n    visit('/employees/sync-settings');\n\n    click('dt:contains(Sync specific employees company-wide)');\n    andThen(function () {\n      assert.ok(!find('.active:contains(Sync all employees)').length, 'sync all is not active');\n\n      server.get('/api/v2/integrations/google-apps/1/users', function (request) {\n        return [200, { \"Content-Type\": \"application/json\" }, {\n          data: []\n        }];\n      });\n      server.patch('/api/v2/integrations/google-apps/1', function (request) {\n        var googleApp = JSON.parse(request.requestBody);\n\n        assert.equal(googleApp.data.attributes.filters.type, 'company', 'sets company');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n    });\n\n    click('button:contains(Test Filter)');\n    click('.js-sync-company-wide-options button:contains(Save Filter)');\n\n    click('dt:contains(Sync all employees)');\n    click('button:contains(Test Filter)');\n    andThen(function () {\n      assert.equal(find('button:contains(Save)').length, 1, 'has save button');\n      assert.equal(find('button:contains(Cancel)').length, 1, 'has cancel button');\n\n      server.patch('/api/v2/integrations/google-apps/1', function (request) {\n        assert.ok(true, 'did put');\n\n        var googleApp = JSON.parse(request.requestBody);\n\n        assert.equal(googleApp.data.attributes.filters.type, 'unfiltered', 'sets unfiltered');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n\n      assert.ok(find('.active:contains(Sync all employees)').length, 'sync all is active');\n    });\n    click('button:contains(Cancel)');\n    andThen(function () {\n      assert.ok(!find('.csvConfirmImport').length, 'test result is hidden when going back to filter');\n    });\n\n    click('dt:contains(Sync all employees)');\n    click('button:contains(Test Filter)');\n    click('button:contains(Save)');\n  });\n\n  qunit.test('navigating with unsaved changes', function (assert) {\n    assert.expect(4);\n\n    visit('/employees/sync-settings');\n\n    click('dt:contains(Sync specific employees company-wide)');\n    andThen(function () {\n      stubConfirm['default'](assert, false, true, function () {\n        click('a[href=\"/employees\"]');\n      });\n    });\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings', 'stays in sync settings if cancel is selected');\n\n      stubConfirm['default'](assert, true, true, function () {\n        click('a[href=\"/employees\"]');\n      });\n    });\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.employees.index', 'navigates to users');\n    });\n  });\n\n  qunit.test('Employees edit', function (assert) {\n    assert.expect(1);\n\n    visit('/employees');\n    click('.employeeList-employee a:eq(0)');\n\n    andThen(function () {\n      assert.equal(find('input[disabled]').length, 2, 'has 2 fields disabled');\n    });\n  });\n\n  qunit.test('hides locations filter', function (assert) {\n    assert.expect(1);\n\n    server.get('/api/v1/locations', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: locations.slice(0, 1)\n      }];\n    });\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.ok(!find('dt:contains(Sync specific employees per-location)').length, 'does not show per location filter');\n    });\n  });\n\n});","define('garaje/tests/acceptance/employees/google-sync-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/employees');\n  QUnit.test('acceptance/employees/google-sync-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/employees/google-sync-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/employees/okta-sync-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'garaje/tests/fixtures/employee', 'garaje/tests/fixtures/okta-integration', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/select'], function (Ember, qunit, startApp, stubConfirm, __dep4__, __dep5__, Pretender, FactoryGuy, select) {\n\n  'use strict';\n\n  var application, locations, server, company, pubnub;\n\n  var okta = undefined;\n\n  var preview_result = [{\n    \"email\": \"abby@signwithenvoy.com\",\n    \"locations\": [1],\n    \"name\": \"Abby Culin\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"abel@signwithenvoy.com\",\n    \"locations\": [1],\n    \"name\": \"Abel Lin\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"adolfo+ca@envoy.co\",\n    \"locations\": [1],\n    \"name\": \"Carlos Builes\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"adolfo@envoy.co\",\n    \"locations\": [1, 2],\n    \"name\": \"Adolfo Builes\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"adolfo@signwithenvoy.com\",\n    \"locations\": [1, 2],\n    \"name\": \"Adolfo Builes\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"alex@signwithenvoy.com\",\n    \"locations\": [1],\n    \"name\": \"Alexander Baldwin\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"ben@signwithenvoy.com\",\n    \"locations\": [1],\n    \"name\": \"Benjamin Angel\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"bryan@signwithenvoy.com\",\n    \"locations\": [1],\n    \"name\": \"Bryan Langslet\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"dan@signwithenvoy.com\",\n    \"locations\": [1],\n    \"name\": \"Daniel Romero\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"eric@signwithenvoy.com\",\n    \"locations\": [1, 2],\n    \"name\": \"Eric Stresen-Reuter\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"matthew@signwithenvoy.com\",\n    \"locations\": [2],\n    \"name\": \"Matthew Johnston\",\n    \"phone_number\": null\n  }, {\n    \"email\": \"mihai@signwithenvoy.com\",\n    \"locations\": [2],\n    \"name\": \"Mihai Anca\",\n    \"phone_number\": null\n  }];\n\n  qunit.module('Acceptance | Employees > Sync | With Okta', {\n    beforeEach: function beforeEach() {\n      application = startApp['default']();\n      company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme',\n        employees_last_sync_at: moment().format(),\n        employees_sync_state: 'finished'\n      })['company'];\n\n      var employee = FactoryGuy['default'].build('employee')['employee'];\n\n      var attrs = FactoryGuy['default'].build('okta-integration', {\n        company: company\n      })['okta-integration'];\n\n      delete attrs['company_id'];\n\n      okta = {\n        id: attrs.id,\n        attributes: attrs,\n        relationships: {\n          company: {\n            data: {\n              id: company.id,\n              type: 'company'\n            }\n          }\n        },\n        type: 'okta-integrations'\n      };\n\n      delete attrs['id'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        primary: true,\n        samlLocationId: 'http://sd.saml.com',\n        pubnub_channel_integrations: '1-integrations'\n      })['location'], FactoryGuy['default'].build('location', {\n        id: 2,\n        name: 'New York',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        samlLocationId: 'http://ny.saml.com',\n        pubnub_channel_integrations: '2-integrations'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: []\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/employees', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: [employee],\n            meta: {\n              total: 1,\n              totalPages: 1\n            }\n          }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: [okta]\n          }];\n        });\n\n        this.get('/api/v2/integrations/okta/:id/custom-attributes', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, {\n            data: [{\n              name: 'foo',\n              label: 'foo'\n            }, {\n              name: 'bar',\n              label: 'bar'\n            }, {\n              name: 'yaz',\n              label: 'yaz'\n            }, {\n              name: '_okta_group',\n              label: 'Okta Group'\n            }]\n          }];\n        });\n        this.get('/api/v2/integrations/okta/:id/groups', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, {\n            data: [{\n              name: 'foo',\n              group_id: 'foo'\n            }, {\n              name: 'bar',\n              group_id: 'bar'\n            }, {\n              name: 'yaz',\n              group_id: 'yaz'\n            }]\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      okta = Ember['default'].copy(okta);\n      pubnub = null;\n    }\n  });\n\n  qunit.test('sync info when synced successfully', function (assert) {\n    assert.expect(6);\n    company.employees_last_sync_at = moment().subtract('hour', 5).format();\n    company.employees_sync_state = 'finished';\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings');\n      assert.ok(find('.js-sync-settings-okta').length, 'displays okta component');\n      assert.ok(!find('b:contains(Last Sync failed)').length, 'does not show sync failure since last sync succeeded');\n      assert.ok(find('p:contains(Last Sync: 5 hours ago)').length, 'show last sync message');\n      assert.ok(find('a:contains(Sync now)').length, 'has sync button');\n\n      server.post('/api/v2/employees/synchronize', function (request) {\n        assert.ok(true, 'did post to synchronize');\n\n        return [201, { \"Content-Type\": \"application/json\" }, {}];\n      });\n    });\n\n    click('.js-sync-settings-okta a:contains(Sync now)');\n  });\n\n  qunit.test('sync info when last sync failed', function (assert) {\n    assert.expect(5);\n\n    company.employees_sync_state = 'errored';\n    okta.attributes['error-state'] = 'reconnect';\n    okta.attributes['error-message'] = 'things went south';\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings');\n      assert.ok(find('b:contains(Last Sync failed)').length, 'shows sync failure');\n      assert.ok(!find('p:contains(Last Sync: a few seconds ago)').length, 'does not show last sync info (since it failed)');\n      assert.ok(!find('a:contains(Sync now)').length, 'does not show sync button');\n\n      assert.ok(find('span:contains(things went south)').length, 'shows failure message');\n    });\n  });\n\n  qunit.test('Editing sync info', function (assert) {\n    assert.expect(1);\n\n    visit('/employees/sync-settings');\n\n    click('.js-sync-settings-okta a:contains(Edit)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'goes to enabled integrations');\n    });\n  });\n\n  qunit.test('Employees edit', function (assert) {\n    assert.expect(1);\n\n    visit('/employees');\n    click('.employeeList-employee a:eq(0)');\n\n    andThen(function () {\n      assert.equal(find('input[disabled]').length, 2, 'has 2 fields disabled');\n    });\n  });\n\n  qunit.test('hides locations filter', function (assert) {\n    assert.expect(1);\n\n    server.get('/api/v1/locations', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: locations.slice(0, 1)\n      }];\n    });\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.ok(!find('dt:contains(Sync specific employees per-location)').length, 'does not show per location filter');\n    });\n  });\n\n  qunit.test('Setting company wide filters ', function (assert) {\n    assert.expect(19);\n    pubnub = application.__container__.lookup('service:pubnub')._pubnub;\n\n    visit('/employees/sync-settings');\n    andThen(function () {\n      assert.ok(!find('.js-sync-company-wide-options').length, 'does not show options for company wide filters ');\n    });\n    click('dt:contains(Sync specific employees company-wide)');\n    andThen(function () {\n      assert.ok(find('.js-sync-company-wide-options').length, 'show options for company wide filters ');\n\n      assert.ok(!find('.js-sync-company-wide-options .js-sync-list').length, 'js-sync-list is not displayed');\n\n      server.patch('/api/v2/integrations/okta/:id', function (request) {\n        assert.ok(true, 'did patch');\n\n        var okta = JSON.parse(request.requestBody);\n\n        assert.equal(okta.data.attributes['filter-type'], 'company', 'sets company filter');\n\n        assert.equal(okta.data.attributes.filters.length, 2, 'set filters');\n\n        var ops = okta.data.attributes.filters.mapBy('operation').uniq();\n        assert.equal(ops.length, 2, 'has two operations');\n\n        assert.equal(ops[0], '=~', 'uses contains');\n\n        assert.equal(ops[1], '=', 'uses equal');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n\n      server.post('/api/v2/integrations/okta/:id/users', function (request) {\n        return [404, { \"Content-Type\": \"application/json\" }, {\n          \"errors\": []\n        }];\n      });\n    });\n\n    click('button:contains(Test Filter)');\n\n    andThen(function () {\n      assert.ok(find('.messageBar.error.showFlash').length, 'shows error');\n    });\n\n    select['default']('.js-sync-company-wide-options select', 'foo');\n    fillIn('#company-foo', 'foo');\n\n    select['default']('.js-sync-company-wide-options select', 'bar');\n    fillIn('#company-bar', 'bar');\n\n    select['default']('#js-op-company-bar', 'equals');\n    select['default']('#js-op-company-foo', 'contains');\n\n    click('button:contains(Test Filter)');\n\n    andThen(function () {\n      assert.ok(find('.messageBar.error.showFlash').length, 'shows error');\n      server.post('/api/v2/integrations/okta/:id/users', function (request) {\n        return [204, { \"Content-Type\": \"application/json\" }];\n      });\n    });\n\n    click('button:contains(Test Filter)');\n\n    andThen(function () {\n      assert.ok(!find('.messageBar.error.showFlash').length, 'hides error message');\n\n      pubnub['1-integrations'](JSON.stringify({\n        provider: 'okta',\n        state: 'preview_completed',\n        users: preview_result.slice(0, 10)\n      }));\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-sync-company-wide-options .js-sync-list').length, 'js-sync-list is displayed');\n      assert.equal(find('.js-csv-imported-list tr').length, 11, 'displays preview results');\n      assert.ok(find('.js-sync-company-wide-options button:contains(Save Filter)').length, 'displays save filter button');\n      assert.ok(find('.js-sync-company-wide-options button:contains(Cancel)').length, 'displays cancel button');\n    });\n\n    click('.js-sync-company-wide-options button:contains(Save Filter)');\n    click('.js-remove-filter');\n\n    andThen(function () {\n      assert.ok(!find('#company-bar').length, 'removes filter bar');\n      assert.ok(!find('#company-foo').length, 'removes filter foo');\n    });\n\n    select['default']('.js-sync-company-wide-options select', 'Okta Group');\n\n    andThen(function () {\n      assert.ok(find('.js-group-select').length, 'shows group selection');\n    });\n  });\n\n  qunit.test('Setting locations wide filters ', function (assert) {\n    assert.expect(18);\n    pubnub = application.__container__.lookup('service:pubnub')._pubnub;\n\n    visit('/employees/sync-settings');\n    andThen(function () {\n      assert.ok(!find('.js-sync-per-location-options').length, 'does not show options for company wide filters ');\n    });\n    click('dt:contains(Sync specific employees per-location)');\n\n    click('button:contains(Test Filter)');\n\n    andThen(function () {\n      assert.ok(find('.messageBar.error.showFlash').length, 'shows error');\n\n      assert.ok(find('.js-sync-per-location-options').length, 'show options for location filters ');\n\n      assert.ok(!find('.js-sync-per-location-options .js-sync-list').length, 'js-sync-list is not displayed');\n\n      server.post('/api/v2/integrations/okta/:id/users', function (request) {\n        return [204, { \"Content-Type\": \"application/json\" }];\n      });\n    });\n\n    select['default']('select', 'foo');\n    select['default']('select', 'bar');\n\n    fillIn('#location-1-foo', 'is foo 1');\n    fillIn('#location-1-bar', 'is bar 1');\n\n    fillIn('#location-2-foo', 'is foo 2');\n    fillIn('#location-2-bar', 'is bar 2');\n\n    select['default']('#js-op-location-1-foo', 'contains');\n    select['default']('#js-op-location-1-bar', 'contains');\n\n    select['default']('#js-op-location-2-foo', 'equals');\n    select['default']('#js-op-location-2-bar', 'equals');\n\n    click('button:contains(Test Filter)');\n\n    andThen(function () {\n      assert.ok(!find('.messageBar.error.showFlash').length, 'hides error message');\n\n      pubnub['1-integrations'](JSON.stringify({\n        provider: 'okta',\n        state: 'preview_completed',\n        users: preview_result\n      }));\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-sync-per-location-options .js-sync-list').length, 'js-sync-list is displayed');\n      assert.equal(find('h2:contains(San Diego) + .js-csv-imported-list tr').length, 11, 'displays preview results San Diego');\n      assert.equal(find('h2:contains(New York) + .js-csv-imported-list tr').length, 6, 'displays preview results for New York');\n      assert.ok(find('.js-sync-per-location-options button:contains(Save Filter)').length, 'displays save filter button');\n      assert.ok(find('.js-sync-per-location-options button:contains(Cancel)').length, 'displays cancel button');\n\n      server.patch('/api/v2/integrations/okta/:id', function (request) {\n        var okta = JSON.parse(request.requestBody);\n\n        assert.equal(okta.data.attributes['filter-type'], 'locations', 'sets locations filter');\n\n        assert.equal(okta.data.attributes.filters.length, 4, 'set filters');\n\n        var ops = okta.data.attributes.filters.mapBy('operation').uniq();\n        assert.equal(ops.length, 2, 'has two operations');\n\n        assert.equal(ops[0], '=~', 'uses contains');\n\n        assert.equal(ops[1], '=', 'uses equal');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n    });\n\n    click('.js-sync-per-location-options button:contains(Save Filter)');\n    click('dt:contains(Sync all employees)');\n\n    click('button:contains(Test Filter)');\n\n    andThen(function () {\n      pubnub['1-integrations'](JSON.stringify({\n        provider: 'okta',\n        state: 'preview_completed',\n        users: preview_result\n      }));\n    });\n\n    click('button:contains(Cancel)');\n\n    andThen(function () {\n      assert.ok(!find('button:contains(Save)').length, 'button save is not displayed');\n      assert.ok(!find('button:contains(Cancel)').length, 'button cancel is not displayed');\n    });\n\n    select['default']('select', 'Okta Group');\n\n    andThen(function () {\n      assert.equal(find('.js-group-select').length, 2, 'shows group selection');\n    });\n  });\n\n});","define('garaje/tests/acceptance/employees/okta-sync-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/employees');\n  QUnit.test('acceptance/employees/okta-sync-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/employees/okta-sync-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/employees/one-login-sync-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'garaje/tests/fixtures/employee', 'garaje/tests/fixtures/one-login', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/select'], function (Ember, qunit, startApp, stubConfirm, __dep4__, __dep5__, Pretender, FactoryGuy, select) {\n\n  'use strict';\n\n  var application, locations, server, company;\n\n  var oneLogin = undefined;\n\n  qunit.module('Acceptance | Employees > Sync | With One Login', {\n    beforeEach: function beforeEach() {\n      application = startApp['default']();\n      company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme',\n        employees_last_sync_at: moment().format(),\n        employees_sync_state: 'finished'\n      })['company'];\n\n      var employee = FactoryGuy['default'].build('employee')['employee'];\n\n      // <2015-08-05 Wed> Adolfo Builes\n      // FactoryGuy seems to fail when different adapter is used per model\n      // so we need to create the right format ;(\n      //\n      var attrs = FactoryGuy['default'].build('one-login')['one-login'];\n      oneLogin = {\n        id: attrs.id,\n        attributes: attrs,\n        relationships: {\n          company: {\n            data: {\n              id: 1,\n              type: 'company'\n            }\n          }\n        },\n        type: 'one-logins'\n      };\n\n      delete attrs['id'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        primary: true,\n        samlLocationId: 'http://sd.saml.com'\n      })['location'], FactoryGuy['default'].build('location', {\n        id: 2,\n        name: 'New York',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        samlLocationId: 'http://ny.saml.com'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: []\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/employees', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: [employee],\n            meta: {\n              total: 1,\n              totalPages: 1\n            }\n          }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: [oneLogin]\n          }];\n        });\n        this.get('/api/v2/integrations/one-logins/:id/custom-attributes', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, {\n            data: [{\n              name: 'custom_attribute_foo',\n              label: 'foo'\n            }, {\n              name: 'custom_attribute_bar',\n              label: 'bar'\n            }, {\n              name: 'custom_attribute_yaz',\n              label: 'yaz'\n            }]\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      oneLogin = Ember['default'].copy(oneLogin);\n    }\n  });\n\n  qunit.test('sync info when synced successfully', function (assert) {\n    assert.expect(6);\n    company.employees_last_sync_at = moment().subtract('hour', 5).format();\n    company.employees_sync_state = 'finished';\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings');\n      assert.ok(find('.js-sync-settings-one-login').length, 'displays one login component');\n      assert.ok(!find('b:contains(Last Sync failed)').length, 'does not show sync failure since last sync succeeded');\n      assert.ok(find('p:contains(Last Sync: 5 hours ago)').length, 'show last sync message');\n      assert.ok(find('a:contains(Sync now)').length, 'has sync button');\n\n      server.post('/api/v2/employees/synchronize', function (request) {\n        assert.ok(true, 'did post to synchronize');\n\n        return [201, { \"Content-Type\": \"application/json\" }, {}];\n      });\n    });\n\n    click('.js-sync-settings-one-login a:contains(Sync now)');\n  });\n\n  qunit.test('sync info when last sync failed', function (assert) {\n    assert.expect(5);\n\n    company.employees_sync_state = 'errored';\n    oneLogin.attributes['error-state'] = 'reconnect';\n    oneLogin.attributes['error-message'] = 'things went south';\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings');\n      assert.ok(find('b:contains(Last Sync failed)').length, 'shows sync failure');\n      assert.ok(!find('p:contains(Last Sync: a few seconds ago)').length, 'does not show last sync info (since it failed)');\n      assert.ok(!find('a:contains(Sync now)').length, 'does not show sync button');\n\n      assert.ok(find('span:contains(things went south)').length, 'shows failure message');\n    });\n  });\n\n  qunit.test('Editing sync info', function (assert) {\n    assert.expect(1);\n\n    visit('/employees/sync-settings');\n\n    click('.js-sync-settings-one-login a:contains(Edit)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'goes to enabled integrations');\n    });\n  });\n\n  qunit.test('Employees edit', function (assert) {\n    assert.expect(1);\n\n    visit('/employees');\n    click('.employeeList-employee a:eq(0)');\n\n    andThen(function () {\n      assert.equal(find('input[disabled]').length, 2, 'has 2 fields disabled');\n    });\n  });\n\n  qunit.test('hides locations filter', function (assert) {\n    assert.expect(1);\n\n    server.get('/api/v1/locations', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: locations.slice(0, 1)\n      }];\n    });\n\n    visit('/employees/sync-settings');\n\n    andThen(function () {\n      assert.ok(!find('dt:contains(Sync specific employees per-location)').length, 'does not show per location filter');\n    });\n  });\n\n  qunit.test('Setting company wide filters ', function (assert) {\n    assert.expect(14);\n\n    visit('/employees/sync-settings');\n    andThen(function () {\n      assert.ok(!find('.js-sync-company-wide-options').length, 'does not show options for company wide filters ');\n    });\n    click('dt:contains(Sync specific employees company-wide)');\n    andThen(function () {\n      assert.ok(find('.js-sync-company-wide-options').length, 'show options for company wide filters ');\n      // assert.ok(\n      //   !find('.js-sync-company-wide-options button:contains(Save Filter)').length,\n      //   'Save filter is not displayed until filter has been tested'\n      // );\n      assert.ok(!find('.js-sync-company-wide-options .js-sync-list').length, 'js-sync-list is not displayed');\n\n      server.patch('/api/v2/integrations/one-logins/:id', function (request) {\n        assert.ok(true, 'did put');\n\n        var oneLogin = JSON.parse(request.requestBody);\n\n        assert.equal(oneLogin.data.attributes['filter-type'], 'company', 'sets company filter');\n\n        assert.equal(oneLogin.data.attributes.filters.length, 2, 'set filters');\n\n        var ops = oneLogin.data.attributes.filters.mapBy('operation').uniq();\n        assert.equal(ops.length, 2, 'has two operations');\n\n        assert.equal(ops[0], '=~', 'uses contains');\n\n        assert.equal(ops[1], '=', 'uses equal');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n      server.get('/api/v2/integrations/one-logins/:id/users', function (request) {\n        return [404, { \"Content-Type\": \"application/json\" }, {\n          \"errors\": []\n        }];\n      });\n    });\n    // click('button:contains(Test Filter)');\n    // andThen(function() {\n    //   assert.ok(\n    //     find('.messageBar.error.showFlash').length,\n    //     'shows error'\n    //   );\n    //   server.get('/api/v2/integrations/one-logins/:id/users', function(request) {\n    //     assert.ok(true, 'did users query');\n\n    //     return [\n    //       200,\n    //       {\"Content-Type\": \"application/json\"},\n    //       {\n    //         data: [\n    //           {\n    //             \"email\": \"tony@envoy.co\",\n    //             \"first_name\": \"Tony\",\n    //             \"last_name\": \"Stark\",\n    //             \"phone\": \"2222348230\"\n    //           }\n    //         ]\n    //       }\n    //     ];\n    //   });\n    // });\n\n    select['default']('.js-sync-company-wide-options select', 'foo');\n    fillIn('#company-custom_attribute_foo', 'foo');\n\n    select['default']('.js-sync-company-wide-options select', 'bar');\n    fillIn('#company-custom_attribute_bar', 'bar');\n\n    select['default']('#js-op-company-custom_attribute_bar', 'equals');\n    select['default']('#js-op-company-custom_attribute_foo', 'contains');\n\n    // click('button:contains(Test Filter)');\n\n    // andThen(function() {\n    //   assert.ok(\n    //     !find('.messageBar.error.showFlash').length,\n    //     'hides error message'\n    //   );\n    //   assert.ok(\n    //     find('.js-sync-company-wide-options .js-sync-list').length,\n    //     'js-sync-list is displayed'\n    //   );\n    //   assert.ok(\n    //     find('.js-csv-imported-list tr').length > 1,\n    //     'displays filter results'\n    //   );\n    //   assert.ok(\n    //     find('.js-sync-company-wide-options button:contains(Save Filter)').length,\n    //     'displays save filter button'\n    //   );\n    // });\n    click('.js-sync-company-wide-options button:contains(Save Filter)');\n\n    click('.js-remove-filter');\n    andThen(function () {\n      assert.ok(!find('#company-custom_attribute_bar').length, 'removes filter bar');\n      assert.ok(!find('#company-custom_attribute_foo').length, 'removes filter foo');\n      server.patch('/api/v2/integrations/one-logins/:id', function (request) {\n        assert.ok(true, 'did put');\n\n        var oneLogin = JSON.parse(request.requestBody);\n\n        assert.equal(oneLogin.data.attributes['filter-type'], 'company', 'sets company filter');\n\n        assert.equal(oneLogin.data.attributes.filters.length, 0, 'set filters');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n      server.get('/api/v2/integrations/one-logins/:id/users', function (request) {\n        return [200, { \"Content-Type\": \"application/json\" }, {\n          data: [{\n            \"email\": \"tony@envoy.co\",\n            \"first_name\": \"Tony\",\n            \"last_name\": \"Stark\",\n            \"phone\": \"2222348230\"\n          }]\n        }];\n      });\n    });\n    // click('button:contains(Test Filter)');\n    click('.js-sync-company-wide-options button:contains(Save Filter)');\n  });\n\n  qunit.test('Setting locations wide filters ', function (assert) {\n    assert.expect(10);\n    visit('/employees/sync-settings');\n    andThen(function () {\n      assert.ok(!find('.js-sync-per-location-options').length, 'does not show options for company wide filters ');\n    });\n    click('dt:contains(Sync specific employees per-location)');\n    andThen(function () {\n      assert.ok(find('.js-sync-per-location-options').length, 'show options for company wide filters ');\n      // assert.ok(\n      //   !find('.js-sync-per-location-options button:contains(Save Filter)').length,\n      //   'Save filter is not displayed until filter has been tested'\n      // );\n      assert.ok(!find('.js-sync-per-location-options .js-sync-list').length, 'js-sync-list is not displayed');\n\n      server.patch('/api/v2/integrations/one-logins/:id', function (request) {\n        var oneLogin = JSON.parse(request.requestBody);\n\n        assert.equal(oneLogin.data.attributes['filter-type'], 'locations', 'sets locations filter');\n\n        assert.equal(oneLogin.data.attributes.filters.length, 4, 'set filters');\n\n        var ops = oneLogin.data.attributes.filters.mapBy('operation').uniq();\n        assert.equal(ops.length, 2, 'has two operations');\n\n        assert.equal(ops[0], '=~', 'uses contains');\n\n        assert.equal(ops[1], '=', 'uses equal');\n\n        return [204, {\n          \"Content-Type\": \"application/json\"\n        }];\n      });\n\n      server.get('/api/v2/integrations/one-logins/:id/users', function (request) {\n        return [404, { \"Content-Type\": \"application/json\" }, {\n          \"errors\": [],\n          \"meta\": {\n            \"message\": \"Please check the format of your query\",\n            \"status\": 400\n          }\n        }];\n      });\n    });\n\n    // click('button:contains(Test Filter)');\n    // andThen(function() {\n    //   assert.ok(\n    //     find('.messageBar.error.showFlash').length,\n    //     'shows error'\n    //   );\n\n    //   server.get('/api/v2/integrations/one-logins/:id/users', function(request) {\n    //     // if (request.queryParams['data[query]'] === 'isCat=true') {\n    //     //   assert.ok(true, 'did send query data for location 1');\n    //     // }\n\n    //     // if (request.queryParams['data[query]'] === 'isDog=true') {\n    //     //   assert.ok(true, 'did send query data for location 2');\n    //     // }\n\n    //     return [\n    //       200,\n    //       {'Content-Type': 'application/json'},\n    //       {\n    //         data: [\n    //           {\n    //             'email': 'tony@envoy.co',\n    //             'first_name': 'Tony',\n    //             'last_name': 'Stark',\n    //             'phone':  '2222348230'\n    //           }\n    //         ]\n    //       }\n    //     ];\n    //   });\n    // });\n    select['default']('select', 'foo');\n    select['default']('select', 'bar');\n\n    fillIn('#location-1-custom_attribute_foo', 'is foo 1');\n    fillIn('#location-1-custom_attribute_bar', 'is bar 1');\n\n    fillIn('#location-2-custom_attribute_foo', 'is foo 2');\n    fillIn('#location-2-custom_attribute_bar', 'is bar 2');\n\n    select['default']('#js-op-location-1-custom_attribute_foo', 'contains');\n    select['default']('#js-op-location-1-custom_attribute_bar', 'contains');\n\n    select['default']('#js-op-location-2-custom_attribute_foo', 'equals');\n    select['default']('#js-op-location-2-custom_attribute_bar', 'equals');\n\n    // click('button:contains(Test Filter)');\n    // andThen(function() {\n    //   assert.ok(\n    //     !find('.messageBar.error.showFlash').length,\n    //     'hides error'\n    //   );\n    //   assert.ok(\n    //     find('.js-sync-per-location-options .js-sync-list').length,\n    //     'js-sync-list is displayed'\n    //   );\n    //   assert.ok(\n    //     find('.js-csv-imported-list tr').length > 1,\n    //     'displays filter results'\n    //   );\n    //   assert.ok(\n    //     find('.js-sync-per-location-options button:contains(Save Filter)').length,\n    //     'displays save filter button'\n    //   );\n    // });\n    click('.js-sync-per-location-options button:contains(Save Filter)');\n    click('dt:contains(Sync all employees)');\n\n    // click('button:contains(Test)');\n    click('button:contains(Cancel)');\n\n    andThen(function () {\n      assert.ok(!find('button:contains(Save)').length, 'button save is not displayed');\n      assert.ok(!find('button:contains(Cancel)').length, 'button cancel is not displayed');\n    });\n  });\n\n});","define('garaje/tests/acceptance/employees/one-login-sync-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/employees');\n  QUnit.test('acceptance/employees/one-login-sync-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/employees/one-login-sync-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/employees-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/select', 'garaje/tests/helpers/stub-confirm', 'garaje/tests/helpers/parse-post-data'], function (Ember, qunit, startApp, Pretender, FactoryGuy, select, stubConfirm, parsePostData) {\n\n  'use strict';\n\n  var App, server, locations, views;\n  var today = moment().format('YYYY-MM-DD');\n\n  qunit.module('Acceptance: Garaje Employees Test', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        pre_registration_enabled: false,\n        cc_receptionist_enabled: false,\n        pre_registration_link: 'https://envoy.co/invites/token_a',\n        security_desk_link: 'https://envoy.co/security/token_a'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false, \"current_version\": \"1.3.0\", \"installed_version\": \"1.3.0\" }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n          }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: { \"id\": 1, \"name\": \"Cool Chip\", \"slack_connected\": false, \"slack_team_name\": null, \"hipchat_connected\": false, \"onboarding_status\": \"complete\" }\n          }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              features: []\n            }\n          }];\n        });\n        this.get('/api/v1/configs/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n          }];\n        });\n        this.get('/api/v1/employees', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: [{ \"id\": 33, \"name\": \"Alan Watsica\", \"email\": \"karen@bailey.com\", \"phone_number\": \"484-779-5852\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 99, \"name\": \"Alfred Beatty\", \"email\": \"harold@hamill.com\", \"phone_number\": \"(612)310-2412\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 57, \"name\": \"Amina Purdy\", \"email\": \"juana_auer@gleichnerheidenreich.info\", \"phone_number\": \"415-425-0710\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": 10, \"delegation_ids\": [] }, { \"id\": 59, \"name\": \"Ardith Keebler\", \"email\": \"natasha@tillman.com\", \"phone_number\": \"205.007.9184 x9199\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 52, \"name\": \"Arjun Eichmann I\", \"email\": \"kelsie.schinner@abshire.com\", \"phone_number\": \"618-692-8891 x60142\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 2, \"name\": \"Bartholome Pollich Jr.\", \"email\": \"hunter@bashirianfay.org\", \"phone_number\": \"1-181-699-4409\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 34, \"name\": \"Bradford Haley\", \"email\": \"ferne@kshlerin.net\", \"phone_number\": \"(331)372-5670 x44704\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 10, \"name\": \"Caleigh Ebert\", \"email\": \"aiyana.turcotte@auer.net\", \"phone_number\": \"935-935-7380\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 62, \"name\": \"Cecile Schoen\", \"email\": \"breanna@rodriguez.org\", \"phone_number\": \"(776)224-1191\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 86, \"name\": \"Cleo Daugherty\", \"email\": \"roberta@cremin.biz\", \"phone_number\": \"(995)071-4369 x65145\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": null, \"delegation_ids\": [] }], \"meta\": { \"total\": 10, \"current_page\": 1, \"total_pages\": 1 }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n\n      views = App.__container__.lookup('-view-registry:main');\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('clicking on an employee should show the selected employees\\' details', function (assert) {\n    assert.expect(10);\n\n    visit('/employees');\n\n    andThen(function () {\n      assert.equal(find('.js-number-of-employees').text().trim(), '10', 'the correct number of employees are shown at the top of the directory');\n      assert.ok(find('.empty-employees--directory').length, 'the empty state is currently shown');\n    });\n\n    click('.employeeList-employee a:contains(Alan Watsica)');\n\n    andThen(function () {\n      assert.equal(find('.js-employee-meta').text().trim(), 'Alan Watsica', 'the correct employee name is shown in the employee details header');\n      assert.equal(find('.js-employee-name').prop('value'), 'Alan Watsica', 'the correct employee name is shown in the employee name field');\n      assert.equal(find('.js-employee-email').prop('value'), 'karen@bailey.com', 'the correct emai is shown');\n      assert.equal(find('.js-employee-phone-number').prop('value'), '(484) 779-5852', 'the correct phone # is shown');\n    });\n\n    click('.employeeList-employee a:contains(Amina Purdy)');\n\n    andThen(function () {\n      assert.equal(find('.js-employee-meta').text().trim(), 'Amina Purdy', 'the correct employee name is shown in the employee details header');\n      assert.equal(find('.js-employee-name').prop('value'), 'Amina Purdy', 'the correct employee name is shown in the employee name field');\n      assert.equal(find('.js-employee-email').prop('value'), 'juana_auer@gleichnerheidenreich.info', 'the correct emai is shown');\n      assert.equal(find('.js-employee-phone-number').prop('value'), '(415) 425-0710', 'the correct phone # is shown');\n    });\n  });\n\n  qunit.test('adding a new employee should add that employee to the directory, deleting should delete and remove them', function (assert) {\n    assert.expect(30);\n\n    visit('/employees');\n\n    andThen(function () {\n      assert.equal(find('.js-number-of-employees').text().trim(), '10', 'there are 10 employees before the addition');\n    });\n\n    click('.js-add-employee');\n\n    andThen(function () {\n      assert.equal(find('.js-employee-meta').text().trim(), 'Add Employee', 'we are on the Add Employee page');\n      assert.equal(find('.js-number-of-employees').text().trim(), '11', 'there are 11 employees due to the new employee');\n      fillIn('.js-employee-email', 'martha');\n      fillIn('.js-employee-phone-number', '41593');\n      click('.js-employee-save');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('error'));\n      assert.equal(find('.js-employee-name').prev('label').text().trim(), 'This is a Required Field', 'name label now says This is a Required Field');\n      assert.equal(find('.js-employee-email').prev('label').text().trim(), 'Please Format Email Correctly', 'email label now prompts user to properly format email');\n      assert.equal(find('.js-employee-phone-number').parent().prev('label').text().trim(), 'Mobile Number is too short', 'phone number label runs phone number validation');\n      fillIn('.js-employee-name', 'Martha Stewart');\n      fillIn('.js-employee-email', 'martha@stewart.com');\n      fillIn('.js-employee-phone-number', '4159353143');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-employee-name').prev('label').text().trim(), 'Name', 'name label back to normal');\n      assert.equal(find('.js-employee-email').prev('label').text().trim(), 'Email', 'email label back to normal');\n      assert.equal(find('.js-employee-phone-number').parent().prev('label').text().trim(), 'Mobile Number', 'phone number label back to normal');\n    });\n\n    andThen(function () {\n      var componentId = '_employee-assistant';\n      var component = views[componentId];\n\n      server.register('GET', '/api/v1/employees', function (request) {\n        assert.equal(request.queryParams.name, 'alan', 'sends in the name param');\n        assert.equal(request.queryParams.location_id, locations[0].id, 'sends in the location_id');\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ \"id\": 33, \"name\": \"Alan Watsica\", \"email\": \"karen@bailey.com\", \"phone_number\": \"484-779-5852 x862\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }]\n        }];\n      });\n\n      find('.select2-container').select2('search', 'alan');\n\n      var store = App.__container__.lookup('service:store');\n\n      // there's a problem trying to programmatically selecting\n      // a select2 option, so our best effort here is to set\n      // the component value directly\n      server.register('GET', '/api/v1/employees/33', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { \"id\": 33, \"name\": \"Alan Watsica\", \"email\": \"karen@bailey.com\", \"phone_number\": \"484-779-5852 x862\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }\n        }];\n      });\n\n      return store.find('employee', 33).then(function (employee) {\n        component.set('value', employee);\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-employeeCC').length, 'employee cc checkbox is visible');\n    });\n\n    andThen(function () {\n      server.register('POST', '/api/v1/employees', function (request) {\n        var employee = JSON.parse(request.requestBody).employee;\n        assert.equal(employee.name, 'Martha Stewart', 'correct name is persisted');\n        assert.equal(employee.email, 'martha@stewart.com', 'correct email is persisted');\n        assert.equal(employee.phone_number, '+14159353143', 'correct phone number is persisted');\n        assert.equal(employee.assistant_id, '33', 'correct assistant id is persisted');\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { id: 32, name: 'Martha Stewart', email: 'martha@stewart.com', phone_number: '8185673211' }\n        }];\n      });\n\n      click('.js-employee-save');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.employees.new-employee');\n      assert.equal(find('.js-employee-meta').text().trim(), 'Add Employee', 'header is Add Employee');\n      assert.equal(find('.js-employee-name').prop('value'), '', 'name field is reset');\n      assert.equal(find('.js-employee-email').prop('value'), '', 'email field is reset');\n      assert.equal(find('.js-employee-phone-number').prop('value'), '', 'phone field is reset');\n    });\n\n    visit('/employees/32');\n\n    andThen(function () {\n      server.register('DELETE', '/api/v1/employees/32', function (request) {\n        assert.deepEqual(parsePostData['default'](request.requestBody), { location_id: '1' }, 'location_id is passed in');\n\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n\n      assert.ok(find('.employeeList-employee a:contains(Martha Stewart)').length, 'employee added to directory list');\n      assert.equal(find('.js-number-of-employees').text().trim(), '11', 'there are 11 employees after the addition');\n      assert.equal(find('.js-employeeCC').parents('label.checkbox').text().trim(), 'Also send notifications to Martha Stewart', 'employee name is in the label');\n\n      stubConfirm['default'](assert, true, function () {\n        click('.js-employee-delete');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(!find('.employeeList-employee a:contains(Martha Stewart)').length, 'employee removed from directory list');\n      assert.equal(find('.js-number-of-employees').text().trim(), '10', 'there are 10 employees after the addition');\n    });\n  });\n\n  qunit.test('editing an employee should work as expected', function (assert) {\n    assert.expect(17);\n\n    visit('/employees');\n\n    andThen(function () {\n      assert.equal(find('.employeeList-employee').eq(2).find('a').text().trim().replace(/(\\r\\n|\\n|\\r)/gm, \" \").replace(/\\s+/g, \" \"), 'Amina Purdy Assistant: Caleigh Ebert', 'Amina Purdy is the third child element in the list');\n      click('.employeeList-employee a:contains(Amina Purdy)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-employee-meta').text().trim(), 'Amina Purdy', 'we are on the correct page');\n      fillIn('.js-employee-name', 'Aamina Purdy');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/employees/57', function (request) {\n        var employee = JSON.parse(request.requestBody).employee;\n        assert.equal(employee.name, 'Aamina Purdy', 'correct name is persisted');\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { \"id\": 57, \"name\": \"Aamina Purdy\", \"email\": \"juana_auer@gleichnerheidenreich.info\", \"phone_number\": \"415-425-0710\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": 10, \"delegation_ids\": [] }\n        }];\n      });\n\n      click('.js-employee-save');\n    });\n\n    andThen(function () {\n      assert.equal(find('.employeeList-employee').eq(0).find('a').text().trim().replace(/(\\r\\n|\\n|\\r)/gm, \" \").replace(/\\s+/g, \" \"), 'Aamina Purdy Assistant: Caleigh Ebert', 'Aamina Purdy is now the first child element in the list');\n      fillIn('.js-employee-name', '');\n      fillIn('.js-employee-email', 'martha');\n      fillIn('.js-employee-phone-number', '8185673211');\n      click('.js-employee-save');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('error'));\n      assert.equal(find('.js-employee-name').prev('label').text().trim(), 'This is a Required Field', 'name label now says This is a Required Field');\n      assert.equal(find('.js-employee-email').prev('label').text().trim(), 'Please Format Email Correctly', 'email label now prompts user to properly format email');\n      fillIn('.js-employee-name', 'Martha Stewart');\n      fillIn('.js-employee-email', 'martha@stewart.com');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/employees/57', function (request) {\n        var employee = JSON.parse(request.requestBody).employee;\n        assert.equal(employee.name, 'Martha Stewart', 'correct name is persisted');\n        assert.equal(employee.email, 'martha@stewart.com', 'correct email is persisted');\n        assert.equal(employee.phone_number, '+18185673211', 'correct phone number is persisted');\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { id: 57, name: 'Martha Stewart', email: 'martha@stewart.com', phone_number: '8185673211' }\n        }];\n      });\n\n      click('.js-employee-save');\n    });\n\n    andThen(function () {\n      assert.ok(find('.employeeList-employee a:contains(Martha Stewart)').length, 'employee updated in the directory list');\n      assert.equal(find('.js-employee-name').prev('label').text().trim(), 'Name', 'name label back to normal');\n      assert.equal(find('.js-employee-email').prev('label').text().trim(), 'Email', 'email label back to normal');\n      click('.employeeList-employee a:contains(Alan Watsica)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-employee-meta').text().trim(), 'Alan Watsica', 'the correct employee name is shown in the employee details header');\n      assert.equal(find('.js-employee-name').prop('value'), 'Alan Watsica', 'the correct employee name is shown in the employee name field');\n      assert.equal(find('.js-employee-email').prop('value'), 'karen@bailey.com', 'the correct emai is shown');\n      assert.equal(find('.js-employee-phone-number').prop('value'), '(484) 779-5852', 'the correct phone # is shown');\n    });\n  });\n\n  qunit.test('deleting an employee should work as expected', function (assert) {\n    assert.expect(5);\n\n    visit('/employees');\n\n    click('.employeeList-employee a:contains(Amina Purdy)');\n\n    andThen(function () {\n      assert.equal(find('.js-employee-meta').text().trim(), 'Amina Purdy', 'we are on the correct page');\n      assert.equal(find('.js-number-of-employees').text().trim(), '10', 'there are 10 employees before the delete');\n    });\n\n    andThen(function () {\n      server.register('DELETE', '/api/v1/employees/57', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n\n      stubConfirm['default'](assert, true, function () {\n        click('.js-employee-delete');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(!find('.employeeList-employee a:contains(Amina Purdy)').length, 'employee updated in the directory list');\n      assert.equal(find('.js-number-of-employees').text().trim(), '9', 'there are 9 employees after the delete');\n    });\n  });\n\n  qunit.test('searching/filtering employees should work as expected', function (assert) {\n    assert.expect(6);\n\n    visit('/employees');\n\n    var employeesController = App.__container__.lookup('controller:employees');\n\n    andThen(function () {\n      assert.equal(find('.js-number-of-employees').text().trim(), '10', 'there are 10 employees before searching - pluralized');\n      employeesController.set('page', 10);\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/employees', function (request) {\n        assert.equal(request.queryParams.name, 'brae', 'correct name param is sent');\n        assert.equal(request.queryParams.page, '1', 'page value when sent via searching should always be one');\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ \"id\": 18, \"name\": \"Braeden Kreiger\" }], \"meta\": { \"total\": 1 }\n        }];\n      });\n    });\n\n    fillIn('.pageSearch', 'brae');\n    keyEvent('.pageSearch', 'keyup', 46);\n\n    andThen(function () {\n      assert.ok(!find('.employeeList-employee a:contains(Chaya Mayer)').length, 'Chaya shouldn\\'t appear in directory list');\n      assert.ok(find('.employeeList-employee a:contains(Braeden Kreiger)').length, 'Braeden should appear in directory list');\n      assert.equal(find('.js-employee-count-header').text().trim(), \"1 Employee matching 'brae'\", 'there is 1 employee after searching - correct pluralization');\n    });\n  });\n\n  qunit.test('when editing an employee, I should be able to select an assistant that is an employee at the company', function (assert) {\n    assert.expect(16);\n\n    visit('/employees');\n\n    andThen(function () {\n      assert.equal(find('.employeeList-assistant').text().trim(), 'Assistant: Caleigh Ebert', 'Amina\\'s assistant should be shown in the directory');\n    });\n\n    click('.employeeList-employee a:contains(Amina Purdy)');\n\n    andThen(function () {\n      assert.equal(find('.js-employee-meta').text().trim(), 'Amina Purdy', 'we are on the correct page');\n      assert.equal(find('.select2-chosen').text().trim(), 'Caleigh Ebert', 'the host dropdown field is displaying the correct current value');\n      assert.ok(find('.js-employeeCC').length, 'employee cc checkbox is visible');\n      click('.select2-choice');\n    });\n\n    andThen(function () {\n      var componentId = '_employee-assistant';\n      var component = views[componentId];\n\n      server.register('GET', '/api/v1/employees', function (request) {\n        assert.equal(request.queryParams.name, 'ar', 'sends in the name param');\n        assert.equal(request.queryParams.location_id, locations[0].id, 'sends in the location_id');\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ \"id\": 59, \"name\": \"Ardith Keebler\", \"email\": \"natasha@tillman.com\", \"phone_number\": \"205.007.9184 x9199\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 52, \"name\": \"Arjun Eichmann I\", \"email\": \"kelsie.schinner@abshire.com\", \"phone_number\": \"618-692-8891 x60142\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }, { \"id\": 2, \"name\": \"Bartholome Pollich Jr.\", \"email\": \"hunter@bashirianfay.org\", \"phone_number\": \"1-181-699-4409\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }], \"meta\": { \"total\": 4, \"current_page\": 1, \"total_pages\": 1 }\n        }];\n      });\n\n      find('.select2-container').select2('search', 'ar');\n      var store = App.__container__.lookup('service:store');\n\n      // there's a problem trying to programmatically selecting\n      // a select2 option, so our best effort here is to set\n      // the component value directly\n      server.register('GET', '/api/v1/employees/59', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { \"id\": 59, \"name\": \"Ardith Keebler\", \"email\": \"natasha@tillman.com\", \"phone_number\": \"205.007.9184 x9199\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }\n        }];\n      });\n\n      return store.find('employee', 59).then(function (employee) {\n        component.set('value', employee);\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.select2-chosen').text().trim(), 'Ardith Keebler', 'Ardith should be displayed as the assistant in the entry form');\n      click('.select2-search-choice-close');\n    });\n\n    andThen(function () {\n      assert.equal(find('.select2-chosen').text().trim(), 'No assistant', 'The select2 placeholder should be displayed as the host in the entry form');\n      assert.ok(!find('.js-employeeCC').length, 'employee cc checkbox is no longer visible');\n    });\n\n    andThen(function () {\n      var componentId = '_employee-assistant';\n      var component = views[componentId];\n\n      server.register('GET', '/api/v1/employees', function (request) {\n        assert.equal(request.queryParams.name, 'alan', 'sends in the name param');\n        assert.equal(request.queryParams.location_id, locations[0].id, 'sends in the location_id');\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ \"id\": 33, \"name\": \"Alan Watsica\", \"email\": \"karen@bailey.com\", \"phone_number\": \"484-779-5852 x862\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }]\n        }];\n      });\n\n      find('.select2-container').select2('search', 'alan');\n      var store = App.__container__.lookup('service:store');\n\n      // there's a problem trying to programmatically selecting\n      // a select2 option, so our best effort here is to set\n      // the component value directly\n      server.register('GET', '/api/v1/employees/33', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { \"id\": 33, \"name\": \"Alan Watsica\", \"email\": \"karen@bailey.com\", \"phone_number\": \"484-779-5852 x862\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": null, \"delegation_ids\": [] }\n        }];\n      });\n\n      return store.find('employee', 33).then(function (employee) {\n        component.set('value', employee);\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-employeeCC').length, 'employee cc checkbox is visible');\n      assert.equal(find('.js-employeeCC').parents('label.checkbox').text().trim(), 'Also send notifications to Amina Purdy', 'employee name is in the label');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/employees/57', function (request) {\n        var body = JSON.parse(request.requestBody).employee;\n        assert.equal(body.assistant_id, 33, 'new assistant correctly persisted');\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { \"id\": 57, \"name\": \"Amina Purdy\", \"email\": \"juana_auer@gleichnerheidenreich.info\", \"phone_number\": \"415-425-0710\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": 33, \"delegation_ids\": [] }\n        }];\n      });\n\n      click('.js-employee-save');\n    });\n\n    andThen(function () {\n      assert.equal(find('.select2-chosen').text().trim(), 'Alan Watsica', 'the host dropdown field is displaying the correct current value');\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('if I assign the same assistant to multiple employees, it should show up in multiple places in the employees list UI', function (assert) {\n    assert.expect(7);\n\n    visit('/employees');\n\n    andThen(function () {\n      assert.equal(find('.employeeList-employee a:contains(Amina Purdy)').find('.employeeList-assistant').text().trim(), 'Assistant: Caleigh Ebert', 'Amina\\'s assistant should be shown in the directory');\n    });\n\n    click('.employeeList-employee a:contains(Alan Watsica)');\n\n    click('.select2-choice');\n\n    andThen(function () {\n      var componentId = '_employee-assistant';\n      var component = views[componentId];\n\n      server.register('GET', '/api/v1/employees', function (request) {\n        assert.equal(request.queryParams.name, 'cal', 'sends in the name param');\n        assert.equal(request.queryParams.location_id, locations[0].id, 'sends in the location_id');\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ \"id\": 10, \"name\": \"Caleigh Ebert\", \"email\": \"aiyana.turcotte@auer.net\", \"phone_number\": \"935-935-7380\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": null, \"delegation_ids\": [] }], \"meta\": { \"total\": 1, \"current_page\": 1, \"total_pages\": 1 }\n        }];\n      });\n\n      find('.select2-container').select2('search', 'cal');\n      var store = App.__container__.lookup('service:store');\n\n      // there's a problem trying to programmatically selecting\n      // a select2 option, so our best effort here is to set\n      // the component value directly\n      server.register('GET', '/api/v1/employees/59', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { \"id\": 10, \"name\": \"Caleigh Ebert\", \"email\": \"aiyana.turcotte@auer.net\", \"phone_number\": \"935-935-7380\", \"cc_employee\": true, \"location_id\": 1, \"assistant_id\": null, \"delegation_ids\": [] }\n        }];\n      });\n\n      return store.find('employee', 10).then(function (employee) {\n        component.set('value', employee);\n      });\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/employees/33', function (request) {\n        var body = JSON.parse(request.requestBody).employee;\n        assert.equal(body.assistant_id, 10, 'new assistant correctly persisted');\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: { \"id\": 33, \"name\": \"Alan Watsica\", \"email\": \"karen@bailey.com\", \"phone_number\": \"484-779-5852 x862\", \"cc_employee\": true, \"location_id\": null, \"assistant_id\": 10, \"delegation_ids\": [] }\n        }];\n      });\n\n      click('.js-employee-save');\n    });\n\n    andThen(function () {\n      assert.equal(find('.select2-chosen').text().trim(), 'Caleigh Ebert', 'the host dropdown field is displaying the correct current value');\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.employeeList-employee a:contains(Alan Watsica)').find('.employeeList-assistant').text().trim(), 'Assistant: Caleigh Ebert', 'Caleigh should show up in the UI as multiple people\\'s assistants');\n    });\n  });\n\n  qunit.test('the employees navigation link should be highlighted when viewing import employees', function (assert) {\n    assert.expect(1);\n\n    visit('/employees');\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"item1\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    click('a:contains(Import Employees)');\n\n    andThen(function () {\n      assert.ok(find('a:contains(Employees)').hasClass('active'), 'the employees navigation link is active');\n    });\n  });\n\n  function mockGoogleApps() {\n    var googleApp = {\n      attributes: {\n        'created-at': \"2015-06-02T21:02:06Z\",\n        email: \"kamal@envoy.co\",\n        enabled: true,\n        filters: {\n          type: 'unfiltered'\n        }\n      },\n      id: 1,\n      type: 'google-apps',\n      relationships: {\n        company: {\n          data: {\n            id: 1,\n            type: 'company'\n          }\n        }\n      }\n    };\n\n    server.get('/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          features: []\n        }\n      }];\n    });\n    server.get('/api/v2/integrations/enabled', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        data: [googleApp]\n      }];\n    });\n  }\n\n  qunit.test('trying to add employee manually with google apps enabled', function (assert) {\n    assert.expect(2);\n    mockGoogleApps();\n\n    visit('/employees/new');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.employees.index');\n      assert.ok(!find('a[href=\"/employees/new\"]').length, 'does not include links to employees new');\n    });\n  });\n\n  qunit.test('searching with google apps enabled', function (assert) {\n    assert.expect(3);\n\n    mockGoogleApps();\n\n    visit('/employees');\n\n    andThen(function () {\n      assert.equal(find('.js-employee-count-header').text().trim(), '10 Employees', 'there are 10 employees');\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/employees', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [],\n          meta: { total: 0, current_page: 1, total_pages: 1 }\n        }];\n      });\n    });\n\n    fillIn('.pageSearch', 'brae');\n    keyEvent('.pageSearch', 'keyup', 46);\n\n    andThen(function () {\n      assert.equal(find('.js-employee-count-header').text().trim(), \"0 Employees matching 'brae'\", 'has 0 employees');\n      assert.ok($('.employeeList dt:contains(No matches found)').length, 'displays no matches found message');\n    });\n  });\n\n  qunit.test('searching with google apps and unsynced directory', function (assert) {\n    assert.expect(1);\n    mockGoogleApps();\n    server.register('GET', '/api/v1/employees', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [],\n        meta: { total: 0, current_page: 1, total_pages: 1 }\n      }];\n    });\n\n    visit('/employees');\n\n    andThen(function () {\n      assert.ok(find('.js-emptyState:contains(Populate your employee directory)').length, 'Shows splash page');\n    });\n  });\n\n  qunit.test('search with empty result and add new employee', function (assert) {\n    assert.expect(3);\n\n    visit('/employees');\n\n    andThen(function () {\n      server.register('GET', '/api/v1/employees', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [],\n          meta: { total: 0, current_page: 1, total_pages: 1 }\n        }];\n      });\n    });\n\n    fillIn('.pageSearch', 'brae');\n    keyEvent('.pageSearch', 'keyup', 46);\n    andThen(function () {\n      assert.equal(find('.js-employee-count-header').text().trim(), \"0 Employees matching 'brae'\", 'has 0 employees');\n    });\n\n    click('.js-add-employee');\n\n    andThen(function () {\n      assert.equal(find('.js-employee-count-header').text().trim(), '1 Employee', 'shows 1 employee');\n      assert.equal(find('.pageSearch').val(), '', 'cleans search strings');\n    });\n  });\n\n});","define('garaje/tests/acceptance/employees-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/employees-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/employees-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/entry-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/select', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, select, stubConfirm) {\n\n  'use strict';\n\n  var App, server, locations, views;\n  var today = moment().format('YYYY-MM-DD');\n\n  qunit.module('Acceptance: Garaje Entry Show Test', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        pre_registration_enabled: false,\n        cc_receptionist_enabled: false,\n        pre_registration_link: 'https://envoy.co/invites/token_a',\n        security_desk_link: 'https://envoy.co/security/token_a'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"locale\": \"en\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false, \"current_version\": \"1.3.0\", \"installed_version\": \"1.3.0\" }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"locale\": \"en\", \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n          }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: { \"id\": 1, \"name\": \"Cool Chip\", \"slack_connected\": false, \"slack_team_name\": null, \"hipchat_connected\": false, \"onboarding_status\": \"complete\" }\n          }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              features: ['dashboard', 'location_switcher']\n            }\n          }];\n        });\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            \"entries\": [{ \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"item1\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }, { \"id\": 3, \"full_name\": \"Cool Visitor3\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T20:27:15.001Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor3@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/3/agreement-968e0/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=YeJXobJ3EBQZMt18s5W66uQp%2BWo%3D', \"thumbnails\": { \"small\": 'https://envoy-development.s3.amazonaws.com/entries/1/3/photo-w160-c2be6/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=8nn5uiok3FJixbhWz5Gu2WEBw28%3D', \"big\": 'https://envoy-development.s3.amazonaws.com/entries/1/3/photo-w300-c2be6/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=wqkW%2B1cwR%2FO40EaVRXPuUFrohCc%3D' } }, { \"id\": 2, \"full_name\": \"Cool Visitor2\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T20:27:13.639Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor2@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/agreement-d8bc0/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=JK76MrjQ%2Fpn5Q%2FG81Nz%2Bbe9fKA0%3D', \"thumbnails\": { \"small\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/photo-w160-a0732/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=aT0niCFDfiUz5R%2Bg4mRXq9KmZk4%3D', \"big\": 'https://envoy-development.s3.amazonaws.com/entries/1/2/photo-w300-a0732/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=anx%2BMP9%2BElR9VUq3R4WlV%2F68TE0%3D' } }, { \"id\": 1, \"full_name\": \"Cool Visitor\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T20:27:11.756Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"emailAddress\", \"value\": \"visitor@email.com\" }], \"agreement_link\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/agreement-2037e/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=ePeK9J3YPka8wjTCuqE6ddZNKTw%3D', \"thumbnails\": { \"small\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w160-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=CmoA8LJ%2BIjG0Bi0WJlPA2WRUzdk%3D', \"big\": 'https://envoy-development.s3.amazonaws.com/entries/1/1/photo-w300-e823b/test.jpg?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1422999411&Signature=RXCBnW80pxTf4BzttMgeTRIicRk%3D' } }], \"meta\": { \"all_total\": 4, \"total\": 4 }\n          }];\n        });\n        this.get('/api/v1/configs/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n          }];\n        });\n        this.get('/api/v1/printers/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, { printer: { id: 1, enabled: false } }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n\n      views = App.__container__.lookup('-view-registry:main');\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('clicking on a specific entry should take you to the entry show page for that particular entry, changing attributes should persist the new attributes', function (assert) {\n    assert.expect(12);\n\n    visit('/settings/location');\n\n    click('a:contains(Dashboard)');\n\n    andThen(function () {\n      assert.ok(find('.js-entry-feed-item').length, 'there are visitor entries visible on the page');\n    });\n    click('.js-entry-feed-item-h4:contains(Jake Adams)');\n\n    andThen(function () {\n      var fullNameInput = find('#' + find('label:contains(Your Full Name)').prop('for'));\n      var yourCompanyInput = find('#' + find('label:contains(Your Company)').prop('for'));\n      var emailAddressInput = find('#' + find('label:contains(Your Email Address)').prop('for'));\n      var dropdownSelect = find('#' + find('label:contains(Hooray dropdown)').prop('for'));\n\n      assert.ok(find('.js-entry-show-name-h1:contains(Jake Adams)').length, 'we are on the entry show page for the specific entry we clicked on');\n      assert.equal(fullNameInput.val(), 'Jake Adams', 'The value for the input with a Your Full Name label matches the expected full name value, hooray');\n      assert.equal(yourCompanyInput.val(), 'Limited', 'The value for the input with a Your Company label matches the expected company value, hooray');\n      assert.equal(emailAddressInput.val(), 'jake@adams.com', 'The value for the input with a Your Email Address label matches the expected email value, hooray');\n      assert.equal(dropdownSelect.val(), 'item1', 'The value for the select with a Hooray dropdown label matches the expected dropdown value, hooray');\n\n      fillIn(fullNameInput, 'Kamal Kamal');\n      fillIn(yourCompanyInput, 'Kamal Inc');\n      fillIn(emailAddressInput, 'kamal@superman.com');\n      select['default'](dropdownSelect, 'item3');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/entries/4', function (request) {\n        var body = JSON.parse(request.requestBody).entry;\n        assert.equal(body.user_data[3].value, 'Kamal Kamal', 'Kamal^2 persisted');\n        assert.equal(body.user_data[0].value, 'Kamal Inc', 'new company name persisted');\n        assert.equal(body.user_data[2].value, 'kamal@superman.com', 'new email address persisted');\n        assert.equal(body.user_data[4].value, 'item3', 'new dropdown value persisted');\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          entry: { \"id\": 4, \"full_name\": \"Kamal Kamal\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"kamal@kamal.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Kamal Kamal\" }, { \"field\": \"Hooray dropdown\", \"value\": \"item3\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n        }];\n      });\n\n      click('.js-entry-save');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-entry-show-name-h1:contains(Kamal Kamal)').length, 'the header name is new value');\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('required fields that are empty should show an error label, users should not be able to submit with blank required fields', function (assert) {\n    assert.expect(11);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"item1\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    visit('/entries/4');\n\n    var fullNameLabel = undefined,\n        fullNameInput = undefined;\n\n    andThen(function () {\n      fullNameLabel = find('label:contains(Your Full Name)');\n      fullNameInput = find('#' + fullNameLabel.prop('for'));\n\n      fillIn(fullNameInput, 'yes');\n    });\n\n    andThen(function () {\n      assert.ok(!fullNameInput.hasClass('error'), 'input error class not applied yet');\n      assert.ok(!fullNameLabel.hasClass('error-description'), 'label error class not applied yet');\n      assert.equal(fullNameLabel.text().trim(), 'Your Full Name', 'label still says Your Full Name');\n\n      fillIn(fullNameInput, '');\n    });\n\n    andThen(function () {\n      assert.ok(fullNameInput.hasClass('error'), 'input error class applied');\n      assert.ok(fullNameLabel.hasClass('error-description'), 'label error class applied');\n      assert.equal(fullNameLabel.text().trim(), 'This is a Required Field', 'label now says This is a Required Field');\n      assert.ok(find('.js-entry-save').prop('disabled'), 'save button is now disabled');\n\n      fillIn(fullNameInput, 'marzipan');\n    });\n\n    andThen(function () {\n      assert.ok(!fullNameInput.hasClass('error'), 'input error class not applied yet');\n      assert.ok(!fullNameLabel.hasClass('error-description'), 'label error class not applied yet');\n      assert.equal(fullNameLabel.text().trim(), 'Your Full Name', 'label still says Your Full Name');\n      assert.ok(!find('.js-entry-save').prop('disabled'), 'save button is now disabled');\n    });\n  });\n\n  qunit.test('deleting an entry should delete the entry and take the user to the dashboard', function (assert) {\n    assert.expect(5);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"item1\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      server.register('DELETE', '/api/v1/entries/4', function (req) {\n        assert.ok(true, 'delete was called');\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n\n      stubConfirm['default'](assert, true, function () {\n        click('.js-entry-delete');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'success bar is shown');\n      assert.equal(currentPath(), 'protected.dashboard.index', 'user successfully taken to dashboard after deletion of entry');\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Monday  February 2nd, 2015', 'we are taken back to the dashboard with the proper date derived from the deleted entries sign in time');\n    });\n  });\n\n  qunit.test('switching locations should take the user to the dashboard', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"locale\": \"en\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false, \"current_version\": \"1.3.0\", \"installed_version\": \"1.3.0\" }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"locale\": \"en\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false, \"current_version\": \"1.3.0\", \"installed_version\": \"1.3.0\" }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"location_id\": 1, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"item1\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    visit('/entries/4');\n    click('ic-menu-item:contains(SF)');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.dashboard.index', 'user successfully taken to dashboard after deletion of entry');\n    });\n  });\n\n  qunit.test('dropdown tests: if there is no value for the dropdown field, it should default to none', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": null }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    visit('/entries/4');\n    var dropdownSelect;\n\n    andThen(function () {\n      dropdownSelect = find('#' + find('label:contains(Hooray dropdown)').prop('for'));\n\n      assert.equal(dropdownSelect.val(), '', 'The value for the select with a Hooray dropdown label matches the expected dropdown value, hooray');\n    });\n  });\n\n  qunit.test('dropdown tests: if value doesn\\'t exist in options anymore, the value should be injected into the dropdown options and selected', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    visit('/entries/4');\n    var dropdownSelect;\n\n    andThen(function () {\n      dropdownSelect = find('#' + find('label:contains(Hooray dropdown)').prop('for'));\n\n      assert.equal(dropdownSelect.val(), 'itemnothere', 'The value for the select with a Hooray dropdown label matches the expected dropdown value, hooray');\n    });\n  });\n\n  qunit.test('if an entry has more userData fields than are listed under config customFields, display the extra userData fields as a plain input', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      assert.ok(find('label:contains(Extra Field)').length, 'extra Field is displayed on the page even though it is not in customFields array');\n    });\n  });\n\n  qunit.test('if a user signed an NDA, that NDA should be downloadable from their entry page and show the date it was originally signed', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": \"https://envoy-development.s3.amazonaws.com/entries/1/3/agreement-e462c/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423598427&Signature=jt2zuUQ91WjejnI0Q2FqBg6f4y0%3D\", \"thumbnails\": {}, \"original_nda_sign_date\": \"2014-10-01T11:02:08.000-07:00\" }\n      }];\n    });\n\n    server.register('GET', '/api/v1/entries/5', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 5, \"full_name\": \"Kamal Breznekhev\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T15:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": \"https://envoy-development.s3.amazonaws.com/entries/1/3/agreement-e462c/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423598427&Signature=jt2zuUQ91WjejnI0Q2FqBg6f4y0%3D\", \"thumbnails\": {}, \"original_nda_sign_date\": null }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      assert.ok(find('.js-agreement-link'.length), 'NDA download link is visible');\n      var expectedUrl = 'https://envoy-development.s3.amazonaws.com/entries/1/3/agreement-e462c/test.pdf?AWSAccessKeyId=AKIAJG5CMGFXSVHMSUHA&Expires=1423598427&Signature=jt2zuUQ91WjejnI0Q2FqBg6f4y0%3D';\n\n      assert.equal(find('.js-agreement-link').prop('href'), expectedUrl, 'the agreement download link matches the supplied link');\n      assert.equal(find('.js-agreement-link').text().trim().replace(/\\s+/g, ' '), 'Signed Oct 1 2014 (Download PDF)', 'the agreement download link shows the correct original NDA sign date');\n    });\n\n    visit('/entries/5');\n\n    andThen(function () {\n      assert.equal(find('.js-agreement-link').text().trim().replace(/\\s+/g, ' '), 'Signed Feb 2 2015 (Download PDF)', 'the agreement download link shows the correct NDA sign date - not a recurring visitor');\n    });\n  });\n\n  qunit.test('if a user refuses an NDA, their entry should reflect that they refused to sign the NDA', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": true, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      assert.ok(find('.js-agreement-refused').length, 'NDA refusal markup is visible');\n    });\n  });\n\n  qunit.test('clicking the Sign Out button should set the sign out time of the entry and hide the sign out button', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": true, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      var now = new Date();\n      server.register('PUT', '/api/v1/entries/4', function (request) {\n        var body = JSON.parse(request.requestBody).entry;\n        assert.equal(moment(body.sign_out_time).format('MMMM Do YYYY, h:mm'), moment(now).format('MMMM Do YYYY, h:mm'), 'correct sign out time sent to server');\n        return [200, { 'Content-Type': 'application/json' }, {\n          entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": true, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": now, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n        }];\n      });\n\n      click('.js-sign-out-button');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(currentPath(), 'protected.dashboard.index', 'user successfully taken to dashboard after deletion of entry');\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Monday  February 2nd, 2015', 'we are taken back to the dashboard with the proper date derived from the deleted entries sign in time');\n    });\n  });\n\n  qunit.test('same day: selecting a sign out time from the sign out dropdown button on should sign the user out at that time', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": true, \"sign_in_time\": \"2015-02-02T12:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/entries/4');\n\n    click('.js-sign-out-dropdown');\n\n    andThen(function () {\n      var now = new Date('February 2, 2015');\n      var nowFormatted = moment(now).format('YYYY-MM-DD');\n      var signOutTime = moment(nowFormatted + ' ' + '7:30 pm', 'YYYY-MM-DD h:mm a').toDate();\n      server.register('PUT', '/api/v1/entries/4', function (request) {\n        var body = JSON.parse(request.requestBody).entry;\n        assert.equal(moment(body.sign_out_time).format('MMMM Do YYYY, h:mm'), moment(signOutTime).format('MMMM Do YYYY, h:mm'), 'correct sign out time sent to server');\n        return [200, { 'Content-Type': 'application/json' }, {\n          entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": true, \"sign_in_time\": \"2015-02-02T12:38:53.000Z\", \"sign_out_time\": signOutTime, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n        }];\n      });\n\n      select['default']('.js-sign-out-dropdown', '7:30 PM');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(currentPath(), 'protected.dashboard.index', 'user successfully taken to dashboard after deletion of entry');\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Monday  February 2nd, 2015', 'we are taken back to the dashboard with the proper date derived from the deleted entries sign in time');\n    });\n  });\n\n  qunit.test('different day: selecting a sign out time from the sign out dropdown button should sign the user out at that time the day of the sign in time', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": true, \"sign_in_time\": \"2015-02-01T12:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/entries/4');\n\n    click('.js-sign-out-dropdown');\n\n    andThen(function () {\n      var now = new Date('February 1, 2015');\n      var nowFormatted = moment(now).format('YYYY-MM-DD');\n      var signOutTime = moment(nowFormatted + ' ' + '7:30 pm', 'YYYY-MM-DD h:mm a').toDate();\n      server.register('PUT', '/api/v1/entries/4', function (request) {\n        var body = JSON.parse(request.requestBody).entry;\n        assert.equal(moment(body.sign_out_time).format('MMMM Do YYYY, h:mm'), moment(signOutTime).format('MMMM Do YYYY, h:mm'), 'correct sign out time sent to server');\n        return [200, { 'Content-Type': 'application/json' }, {\n          entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": true, \"sign_in_time\": \"2015-02-01T12:38:53.000Z\", \"sign_out_time\": signOutTime, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n        }];\n      });\n\n      select['default']('.js-sign-out-dropdown', '7:30 PM');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(currentPath(), 'protected.dashboard.index', 'user successfully taken to dashboard after deletion of entry');\n      assert.equal(find('.js-formatted-chosen-date').text().trim(), 'Sunday  February 1st, 2015', 'we are taken back to the dashboard with the proper date derived from the deleted entries sign in time');\n    });\n  });\n\n  qunit.test('when editing an entry, I should be able to select a different host from a dropdown that is an employee at the company', function (assert) {\n    assert.expect(10);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": \"Mattie Bailey\", \"agreement_refused\": true, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Host\", \"value\": \"Mattie Bailey\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": \"host_notification\", \"label\": \"Host\", \"required\": false, \"dropdown\": false, \"is_textarea\": false, \"options\": [] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    server.register('GET', '/api/v1/employees', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: []\n      }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      assert.equal(find('.select2-chosen').text().trim(), 'Mattie Bailey', 'the host dropdown field is displaying the correct current value');\n      click('.select2-choice');\n    });\n\n    andThen(function () {\n      var componentId = '_mappedFieldSelectId2';\n      var component = views[componentId];\n\n      server.register('GET', '/api/v1/employees', function (request) {\n        assert.equal(request.queryParams.name, 'bla', 'sends in the name param');\n        assert.equal(request.queryParams.location_id, locations[0].id, 'sends in the location_id');\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ id: 1, name: 'blabla' }, { id: 2, name: 'blablabla' }]\n        }];\n      });\n\n      find('.select2-container').select2('search', 'bla');\n\n      var store = App.__container__.lookup('service:store');\n\n      // there's a problem trying to programmatically selecting\n      // a select2 option, so our best effort here is to set\n      // the component value directly\n      server.register('GET', '/api/v1/employees/1', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: {\n            id: 1,\n            name: 'blabla'\n          }\n        }];\n      });\n\n      return store.find('employee', 1).then(function (employee) {\n        component.set('value', employee);\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.select2-chosen').text().trim(), 'blabla', 'blabla should be displayed as the host in the entry form');\n      click('.select2-search-choice-close');\n    });\n\n    andThen(function () {\n      assert.equal(find('.select2-chosen').text().trim(), 'Choose a Host', 'The select2 placeholder should be displayed as the host in the entry form');\n    });\n\n    andThen(function () {\n      var componentId = '_mappedFieldSelectId2';\n      var component = views[componentId];\n\n      server.register('GET', '/api/v1/employees', function (request) {\n        assert.equal(request.queryParams.name, 'bla', 'sends in the name param');\n        assert.equal(request.queryParams.location_id, locations[0].id, 'sends in the location_id');\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ id: 1, name: 'blabla' }, { id: 2, name: 'blablabla' }]\n        }];\n      });\n\n      find('.select2-container').select2('search', 'bla');\n      var store = App.__container__.lookup('service:store');\n\n      // there's a problem trying to programmatically selecting\n      // a select2 option, so our best effort here is to set\n      // the component value directly\n      server.register('GET', '/api/v1/employees/1', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: {\n            id: 1,\n            name: 'blabla'\n          }\n        }];\n      });\n\n      return store.find('employee', 1).then(function (employee) {\n        component.set('value', employee);\n      });\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/entries/4', function (request) {\n        var body = JSON.parse(request.requestBody).entry;\n        assert.equal(body.user_data[1].value, 'blabla', 'new select2 host correctly persisted');\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": \"blabla\", \"agreement_refused\": true, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Host\", \"value\": \"blabla\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n        }];\n      });\n\n      click('.js-entry-save');\n    });\n\n    andThen(function () {\n      assert.equal(find('.select2-chosen').text().trim(), 'blabla', 'the host dropdown field is displaying the correct current value');\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('doesn\\'t show Reprint Badge button if printer is disabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      assert.ok(!find('button.js-reprint-badge-button').length, 'there is no reprint badge button');\n    });\n  });\n\n  qunit.test('shows Reprint Badge button if printer is enabled', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    server.register('GET', '/api/v1/printers/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, { printer: { id: 1, enabled: true } }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      assert.ok(find('.js-reprint-badge-button').length, 'there is a reprint badge button');\n    });\n  });\n\n  qunit.test('doesn\\t show Reprint Badge button if printer is enabled but iPad version is too low', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{ \"id\": 1, \"company_id\": 1, \"admin_id\": 1, \"config_id\": 1, \"badge_id\": 1, \"printer_id\": 1, \"webhook_id\": null, \"saml_id\": null, \"name\": \"HQ\", \"primary\": true, \"disabled\": false, \"address\": \"461 2nd Street #351, Coralville, IA 52241, USA\", \"latitude\": 41.6714561, \"longitude\": -91.5737255, \"timezone\": \"America/Chicago\", \"saml_location_id\": \"4f056e0aa55bf83c1e41\", \"api_key\": \"6335b86b854757d4cbcaf24238f7d639\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/20ad05006df7a5d37a67\", \"security_desk_link\": \"http://127.0.0.1:3000/security/f5735604161c8b579cad\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false, \"current_version\": \"1.3.0\", \"installed_version\": \"1.2.0\" }, { \"id\": 2, \"company_id\": 1, \"admin_id\": 2, \"config_id\": 2, \"badge_id\": 2, \"printer_id\": 2, \"webhook_id\": null, \"saml_id\": null, \"name\": \"SF\", \"primary\": false, \"disabled\": true, \"address\": null, \"latitude\": null, \"longitude\": null, \"timezone\": 'Pacific Time (US & Canada)', \"saml_location_id\": \"605ff7a3e3420027ee7a\", \"api_key\": \"4f964805e6c3f7948a6e346593d40016\", \"logo\": null, \"color\": \"#CE0000\", \"pre_registration_enabled\": false, \"cc_receptionist_enabled\": false, \"pre_registration_notes\": null, \"pre_registration_link\": \"http://127.0.0.1:3000/invites/4ce49b69501040ef1146\", \"security_desk_link\": \"http://127.0.0.1:3000/security/ca50bd35464adbbbec5e\", \"receptionist\": null, \"email_notification_enabled\": false, \"sms_notification_enabled\": false, \"slack_notification_enabled\": false, \"hipchat_notification_enabled\": false, \"update_available\": false }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": null, \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    server.register('GET', '/api/v1/printers/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, { printer: { id: 1, enabled: true } }];\n    });\n\n    visit('/entries/4');\n\n    andThen(function () {\n      assert.ok(!find('button.js-reprint-badge-button').length, 'there is not a reprint badge button');\n    });\n  });\n\n  qunit.test('hides reprint badge button if the user is signed out', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/entries/4', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        entry: { \"id\": 4, \"full_name\": \"Jake Adams\", \"host_name\": null, \"agreement_refused\": false, \"sign_in_time\": \"2015-02-02T21:38:53.000Z\", \"sign_out_time\": \"2015-02-02T21:38:53.000Z\", \"sms_status\": \"disabled\", \"email_status\": \"disabled\", \"hipchat_status\": \"disabled\", \"slack_status\": \"disabled\", \"user_data\": [{ \"field\": \"Your Company\", \"value\": \"Limited\" }, { \"field\": \"Extra Field\", \"value\": \"extra field value\" }, { \"field\": \"Country of origin\", \"value\": \"Swaz\" }, { \"field\": \"Your Email Address\", \"value\": \"jake@adams.com\" }, { \"field\": \"Your Full Name\", \"value\": \"Jake Adams\" }, { \"field\": \"Hooray dropdown\", \"value\": \"itemnothere\" }, { \"field\": \"Your Phone Number\", \"value\": \"4123459810\" }], \"agreement_link\": null, \"thumbnails\": {} }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n      }];\n    });\n\n    server.register('GET', '/api/v1/printers/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, { printer: { id: 1, enabled: true } }];\n    });\n\n    visit('/entries/4');\n    andThen(function () {\n      assert.ok(!find('button.js-reprint-badge-button').length, 'there is not a reprint badge button');\n    });\n  });\n\n  qunit.test('the dashboard navigation link should be highlighted when viewing an entry', function (assert) {\n    assert.expect(2);\n\n    visit('/settings/location');\n    click('a:contains(Dashboard)');\n\n    andThen(function () {\n      assert.ok(find('.js-entry-feed-item').length, 'there are visitor entries visible on the page');\n    });\n\n    click('.js-entry-feed-item-h4:contains(Jake Adams)');\n\n    andThen(function () {\n      assert.ok(find('a:contains(Dashboard)').hasClass('active'), 'the dashboard navigation link is active');\n    });\n  });\n\n});","define('garaje/tests/acceptance/entry-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/entry-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/entry-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/google-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n\n  var application, server, locations, googleApp, integrationsManager;\n\n  qunit.module('Acceptance: Integrations > Google Apps', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme',\n        employeesSyncState: 'never',\n        employeesLastSyncAt: null\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      googleApp = {\n        attributes: {\n          created_at: moment().format(),\n          email: \"kamal@envoy.co\",\n          enabled: true,\n          filters: {\n            type: 'unfiltered'\n          }\n        },\n        id: 1,\n        type: 'google-apps'\n      };\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        primary: true,\n        samlLocationId: 'http://sd.saml.com'\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'New York',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        samlLocationId: 'http://ny.saml.com'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['integrations.google_apps']\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/employees', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: []\n          }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n        this['delete']('/api/v2/integrations/google-apps/:id', function (request) {\n          return [204, { 'Content-Type': 'application/json' }, ''];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n\n      integrationsManager = application.__container__.lookup('service:integrations-manager');\n\n      integrationsManager.authManager = function (url, width, height) {\n        var payload = Ember['default'].copy(googleApp);\n\n        // workaround since ember-data is changing this in memory\n        payload.relationships = {\n          company: {\n            data: {\n              id: company.id,\n              type: 'company'\n            }\n          }\n        };\n\n        return Ember['default'].RSVP.resolve({\n          status: 'oauth.connected',\n          data: payload\n        });\n      };\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('Enabling/Disabling/Disconnecting Google Apps Employee Directory', function (assert) {\n    assert.expect(21);\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.ok(!find('a:contains(Enabled Integrations)').length, 'doesn\\'t show enabled tab since account doesn\\'t have integration');\n      assert.equal(currentPath(), 'protected.settings.integrations.index');\n      assert.ok(find('.js-employee-directory-integrations h4:contains(Google Apps)').length, 'includes google apps in employee directory integrations');\n      server.get('/api/v2/integrations/google-apps', function (request) {\n        assert.ok(true, 'loads integration after enabling');\n        return [200, { 'Content-Type': 'application/json' }, {\n          data: [googleApp]\n        }];\n      });\n    });\n    click('.js-integrations-google-apps button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings', 'redirected to sync settings after installing');\n    });\n    visit('/settings/integrations');\n    andThen(function () {\n      assert.ok(find('.js-integrations-google-apps p:contains(Installed)').length, 'shows google apps as installed');\n      assert.ok(find('a:contains(Enabled Integrations)').length, 'Shows enabled tab');\n    });\n    click('a:contains(Enabled Integrations)');\n    click('.js-integrations-google-apps-config a:contains(Configure)');\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-google-apps-config button:contains(Disconnect)');\n      });\n    });\n\n    click('a:contains(All Integrations)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-google-apps button:contains(Install)').length, 'shows install button');\n    });\n    click('.js-integrations-google-apps button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings', 'redirected to sync settings after installing');\n    });\n    visit('/settings/integrations/enabled?integration=googleApp');\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-google-apps-config .js-integration').length, 'configurable actions are displayed');\n      assert.ok(find('.js-integrations-google-apps-config input[type=checkbox]').prop('checked'), 'Shows sync enabled');\n    });\n    click('.js-integrations-google-apps-config a.btn--cancel');\n    andThen(function () {\n      assert.ok(!find('.js-integrations-google-apps-config .js-integration').length, 'configurable actions are hidden');\n      server.patch('/api/v2/integrations/google-apps/1', function (request) {\n        var googleApp = JSON.parse(request.requestBody);\n\n        assert.ok(!googleApp.data.attributes.enabled, 'makes disable integration request');\n\n        return [204, {\n          'Content-Type': 'application/json'\n        }];\n      });\n    });\n    click('.js-integrations-google-apps-config a:contains(Configure)');\n    click('.js-integrations-google-apps-enable');\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(!find('.js-integrations-google-apps-enable').prop('checked'), 'Shows  sync as disable');\n      assert.ok(find('p:contains(Syncing employees from envoy.co manually)').length, 'displayes synced paused message.');\n      server.patch('/api/v2/integrations/google-apps/1', function (request) {\n        var googleApp = JSON.parse(request.requestBody);\n\n        assert.ok(googleApp.data.attributes.enabled, 'makes disable integration request');\n\n        return [204, {\n          'Content-Type': 'application/json'\n        }];\n      });\n    });\n    click('.js-integrations-google-apps-enable');\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('.js-integrations-google-apps-enable').prop('checked'), 'Shows  sync as enable');\n      assert.ok(find('.js-integrations-google-apps-config').length, 'config box is displayed');\n    });\n\n    click('a:contains(Employee Directory)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings');\n    });\n  });\n\n  qunit.test('When user does not have enough permissions', function (assert) {\n    assert.expect(4);\n    integrationsManager.authManager = function (url, width, height) {\n      return Ember['default'].RSVP.reject({\n        status: 'oauth.insufficient_access',\n        errors: [{\n          messages: ['You do not have enough access.']\n        }]\n      });\n    };\n\n    visit('/settings/integrations');\n    click('.js-integrations-google-apps button:contains(Install)');\n    andThen(function () {\n      assert.equal(find('.messageBar.error p').first().text(), 'Error: You do not have enough access.', 'shows message when present');\n      assert.equal(currentPath(), 'protected.settings.integrations.index', 'stays in integration page');\n      assert.ok(find('.js-integrations-google-apps button:contains(Install)').length, 'shows install button');\n      integrationsManager.authManager = function (url, width, height) {\n        return Ember['default'].RSVP.reject({});\n      };\n    });\n    click('.js-integrations-google-apps button:contains(Install)');\n    andThen(function () {\n      assert.equal(find('.messageBar.error p').first().text(), 'Error: sorry, we couldn\\'t connect your account.', 'shows default error');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/google-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/google-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/google-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/gtalk-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'ember-data-factory-guy', 'pretender', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, FactoryGuy, Pretender, stubConfirm) {\n\n  'use strict';\n\n  var server = undefined;\n\n  qunit.module('Acceptance: Integrations > Google Hangouts', {\n    beforeEach: function beforeEach() {\n      this.application = startApp['default']();\n\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      var locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: {\n          id: admin.id\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['google_hangouts']\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(this.application, 'destroy');\n    }\n  });\n\n  qunit.test('disabling/enabling gtalk', function (assert) {\n    assert.expect(10);\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.ok(find('.js-host-notification-integrations h4:contains(Google Hangouts)').length, 'includes google hangouts in host notifications integrations');\n\n      server.register('PUT', '/api/v1/companies/:id', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n\n        var enabled = company.gtalk_enabled;\n\n        assert.ok(enabled, 'enables google hangout');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n    click('.js-integrations-google-hangouts button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where google hangout can be disabled');\n      assert.ok(find('.js-integrations-google-hangouts-config').length, 'has google hangouts config box');\n    });\n    // click('.js-integrations-google-hangouts-config a:contains(Configure)');\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-google-hangouts-config button:contains(Disable)').length, 'shows disable button');\n    });\n\n    click('a:contains(All Integrations)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-google-hangouts p:contains(Installed)').length, 'shows google hangouts as installed');\n    });\n    click('a:contains(Enabled Integrations)');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/companies/:id', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n\n        var enabled = company.gtalk_enabled;\n\n        assert.ok(!enabled, 'disabled google hangout');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    // Disabling\n    click('.js-integrations-google-hangouts-config .btn:contains(Configure)');\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-google-hangouts-config button:contains(Disable)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-integrations-google-hangouts-config').length, 'google hangouts integration is removed');\n    });\n\n    click('a:contains(All Integrations)');\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-google-hangouts button:contains(Install)').length, 'show install button on google hangout');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/gtalk-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/gtalk-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/gtalk-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/hipchat-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance: Integrations > Hipchat', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: {\n          id: admin.id\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      server.shutdown();\n      Ember['default'].run(application, 'destroy');\n    }\n  });\n\n  qunit.test('adding/updating/disabling/enabling/removing hipchat', function (assert) {\n    assert.expect(18);\n    var integrationsManager = application.__container__.lookup('service:integrations-manager');\n    var currentLocation = application.__container__.lookup('service:current-location');\n\n    integrationsManager.childWindow = function (url) {\n      integrationsManager.loadHipchat(currentLocation.content, {\n        id: 1,\n        connected: true,\n        company_id: 1\n      });\n\n      return Ember['default'].RSVP.resolve({});\n    };\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.ok(find('.js-host-notification-integrations h4:contains(HipChat)').length, 'includes hipchat in host notifications integrations');\n    });\n    click('.js-integrations-hipchat button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where hipchat has to be configured');\n      assert.ok(find('.js-integrations-hipchat-config').length, 'has hipchat config box');\n\n      assert.ok(!find('.js-integrations-hipchat-config h4:contains(Configurable Actions)').length, 'Configurable actions are not displayed');\n    });\n    click('button:contains(Go to HipChat)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-hipchat-config h4:contains(Configurable Actions)').length, 'Configurable actions are displayed after installing');\n      assert.ok(find('.js-integrations-hipchat-config button:contains(Disconnect)').length, 'shows disconnect button');\n      assert.ok(find('.js-integrations-hipchat-config h4:contains(Acme)').length, 'shows team name');\n    });\n\n    click('a:contains(All Integrations)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-hipchat p:contains(Installed)').length, 'shows hipchat as installed');\n    });\n    click('a:contains(Enabled Integrations)');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/:id', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n\n        assert.ok(!location.hipchat_notification_enabled, 'disabled hipchat in location');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    // Disabling\n    click('.js-integrations-hipchat-config .btn:contains(Configure)');\n    click('.js-integrations-hipchat-config .js-hipchat-notification');\n\n    // Enabling\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'shows success message');\n\n      assert.ok(!find('.js-integrations-hipchat-config .js-hipchat-notification').prop('checked'), 'Shows notifications as disabled');\n\n      server.register('PUT', '/api/v1/locations/:id', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n\n        assert.ok(location.hipchat_notification_enabled, 'enables hipchat in location');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    click('.js-integrations-hipchat-config .js-hipchat-notification');\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n\n      assert.ok(find('.js-integrations-hipchat-config .js-hipchat-notification').prop('checked'), 'Shows notifications as enabled');\n\n      server.register('PUT', '/api/v1/companies/:id', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n\n        assert.ok(!company.hipchat_connected, 'disables hipchat');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-hipchat-config button:contains(Disconnect)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-integrations-hipchat-config').length, 'hipchat integration is removed');\n    });\n\n    click('a:contains(All Integrations)');\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-hipchat button:contains(Install)').length, 'show install button on hipchat');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/hipchat-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/hipchat-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/hipchat-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/ifttt-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance: Integrations > IFTTT', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: []\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { data: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      server.shutdown();\n      Ember['default'].run(application, 'destroy');\n    }\n  });\n\n  qunit.test('adding/updating/disabling/enabling/removing ifttt', function (assert) {\n    assert.expect(8);\n    var integrationsManager = application.__container__.lookup('service:integrations-manager');\n\n    integrationsManager.childWindow = function (url) {\n      return Ember['default'].RSVP.reject({});\n    };\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.ok(find('.js-custom-integrations h4:contains(IFTTT)').length, 'includes ifttt in custom integrations');\n      server.get('/api/v2/integrations/ifttt-integrations', function (request) {\n        return [200, { \"Content-Type\": \"application/json\" }, {\n          data: [{\n            attributes: {\n              'grantee-emails': 'john+sf@doe.com,john@doe.com'\n            },\n            id: 4,\n            links: {\n              self: 'http:localhost:3000/api/v2/integrations/ifttt-integrations/3'\n            },\n            relationships: {\n              company: {\n                data: {\n                  id: 1,\n                  type: 'company'\n                }\n              }\n            },\n            type: 'ifttt-integration'\n          }]\n        }];\n      });\n    });\n    click('.js-integrations-ifttt button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where ifttt has to be configured');\n      assert.ok(find('.js-integrations-ifttt-config').length, 'has ifttt config box');\n\n      assert.ok(find('.js-integrations-ifttt-config button:contains(Disconnect)').length, 'shows disconnect button');\n    });\n\n    click('a:contains(All Integrations)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-ifttt p:contains(Installed)').length, 'shows ifttt as installed');\n    });\n    click('a:contains(Enabled Integrations)');\n\n    andThen(function () {\n      server['delete']('/api/v2/integrations/ifttt-integrations/4', function (request) {\n        assert.ok(true, 'deletes the integration');\n\n        return [204, { 'Content-Type': 'application/json' }, {}];\n      });\n    });\n\n    click('.js-integrations-ifttt-config a:contains(Configure)');\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-ifttt-config button:contains(Disconnect)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-ifttt button:contains(Install)').length, 'show install button on ifttt');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/ifttt-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/ifttt-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/ifttt-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/okta-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance: Integrations > Okta', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id }\n      })['location']];\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['okta']\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { data: [] }];\n        });\n        this.get('/api/v2/integrations/okta/:id/custom-attributes', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, {\n            data: []\n          }];\n        });\n        this.get('/api/v2/integrations/okta/:id/groups', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, {\n            data: []\n          }];\n        });\n      });\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      server.shutdown();\n      Ember['default'].run(application, 'destroy');\n    }\n  });\n\n  qunit.test('Adding/Updating/Removing Okta', function (assert) {\n    assert.expect(21);\n\n    var integrationsManager = application.__container__.lookup('service:integrations-manager');\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index');\n      assert.ok(find('.js-employee-directory-integrations h4:contains(Okta)').length, 'includes okta in employee directory integrations');\n    });\n    click('.js-integrations-okta button:contains(Install)');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where okta has to be configured');\n      assert.ok(find('.js-integrations-okta-config').length, 'has okta config box');\n      assert.ok(!find('.js-integrations-okta-config button:contains(Disconnect)').length, 'does not have disconnect button');\n    });\n\n    click('.js-integrations-okta-config button:contains(Save)');\n\n    andThen(function () {\n      assert.ok(find('.integrations-oktadomain.error').length > 0, 'Domain has error');\n      assert.equal(find('.integrations-oktadomain').prev('.error-description').text().trim(), 'Domain can\\'t be blank');\n      assert.ok(find('.integrations-oktatoken.error').length > 0, 'Token has error');\n      assert.equal(find('.integrations-oktatoken').prev('.error-description').text().trim(), 'Token can\\'t be blank');\n    });\n\n    fillIn('.integrations-oktadomain', 'invalid domain');\n    fillIn('.integrations-oktatoken', 'invalid token');\n\n    andThen(function () {\n      assert.ok(find('.integrations-oktadomain.error').length > 0, 'Domain has error');\n      assert.equal(find('.integrations-oktadomain').prev('.error-description').text().trim(), 'Domain must be valid');\n    });\n\n    fillIn('.integrations-oktadomain', 'example.com');\n    fillIn('.integrations-oktatoken', '000000000000000000000000000000000000000123');\n\n    andThen(function () {\n      server.post('/api/v2/integrations/okta', function (request) {\n        var oktaIntegration = JSON.parse(request.requestBody);\n        var _oktaIntegration$data$attributes = oktaIntegration.data.attributes;\n        var domain = _oktaIntegration$data$attributes.domain;\n        var token = _oktaIntegration$data$attributes.token;\n\n        assert.equal(domain, 'example.com');\n        assert.equal(token, '000000000000000000000000000000000000000123');\n        oktaIntegration.data.id = 123;\n\n        return [201, { 'Content-Type': 'application/json' }, oktaIntegration];\n      });\n    });\n\n    click('.js-integrations-okta-config button:contains(Save)');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings', 'redirected to sync settings after installing');\n    });\n    visit('/settings/integrations/enabled?integration=okta');\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-okta-config button:contains(Disconnect)').length, 'has disconnect button');\n      assert.ok(find('.js-integrations-okta-config input[type=checkbox]').prop('checked'), 'Shows sync on the hour as enabled');\n\n      server.patch('/api/v2/integrations/okta/123', function (request) {\n        var okta = JSON.parse(request.requestBody);\n\n        assert.ok(!okta.data.attributes.enabled, 'makes disable integration request');\n\n        return [204, {\n          'Content-Type': 'application/json'\n        }];\n      });\n    });\n\n    click('.js-integrations-okta-enable');\n\n    andThen(function () {\n      assert.ok(!find('.js-integrations-okta-config input[type=checkbox]').prop('checked'), 'Shows sync on the hour as disabled');\n\n      server.patch('/api/v2/integrations/okta/123', function (request) {\n        var okta = JSON.parse(request.requestBody);\n\n        assert.ok(okta.data.attributes.enabled, 'makes enable integration request');\n\n        return [204, {\n          'Content-Type': 'application/json'\n        }];\n      });\n    });\n\n    click('.js-integrations-okta-config a:contains(Configure)');\n    click('.js-integrations-okta-enable');\n\n    andThen(function () {\n      stubConfirm['default'](assert, false, function () {\n        click('.js-integrations-okta-config button:contains(Disconnect)');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'does not redirect');\n    });\n\n    // 9/21/2015 - abuiles commenting this temporarily\n    // look back again once in master\n    //\n    //\n    // andThen(function() {\n    //   server.delete('/api/v2/integrations/okta/123', () => [\"200\"]);\n    //   stubConfirm(assert, true, function(){\n    //     click('.js-integrations-okta-config button:contains(Disconnect)');\n    //   });\n    // });\n\n    // andThen(function() {\n    //   assert.equal(\n    //     currentPath(),\n    //     'protected.settings.integrations.index',\n    //     'redirects to all integrations'\n    //   );\n    // });\n  });\n\n});","define('garaje/tests/acceptance/integrations/okta-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/okta-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/okta-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/one-login-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var application, server, locations, integrationsManager;\n\n  qunit.module('Acceptance: Integrations > One Login', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme',\n        employeesSyncState: 'never',\n        employeesLastSyncAt: null\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        primary: true,\n        samlLocationId: 'http://sd.saml.com'\n      })['location'], FactoryGuy['default'].build('location', {\n        id: 2,\n        name: 'New York',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        samlLocationId: 'http://ny.saml.com'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['one_login']\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/employees', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: []\n          }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n        this.get('/api/v2/integrations/one-logins/:id/custom-attributes', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, {\n            data: []\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n\n      integrationsManager = application.__container__.lookup('service:integrations-manager');\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('Enabling/Disabling/Disconnecting One Login Employee Directory', function (assert) {\n    assert.expect(25);\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index');\n      assert.ok(find('.js-employee-directory-integrations h4:contains(OneLogin)').length, 'includes onelogin in employee directory integrations');\n    });\n    click('.js-integrations-one-login button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where one login has to be configured');\n      assert.ok(find('.js-integrations-one-login input').length, 'form field is shown');\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-one-login .btn--cancel');\n      });\n    });\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index', 'goes to integrations index page after clicking cancel');\n      assert.ok(!find('.js-integrations-one-login p:contains(Installed)').length, 'does not show OneLogin as installed');\n    });\n\n    click('.js-integrations-one-login button:contains(Install)');\n    click('.js-integrations-one-login .btn:contains(Save)');\n    andThen(function () {\n      assert.equal(find('.integrations-one-login-api-key').prev('label').text().trim(), 'API Key can\\'t be blank', 'label shows error');\n    });\n    fillIn('.integrations-one-login-api-key', 'adfasdfadf324324afdadf');\n    andThen(function () {\n      assert.equal(find('.integrations-one-login-api-key').prev('label').text().trim(), 'API Key', 'error disappears');\n\n      stubConfirm['default'](assert, false, function () {\n        click(find('.js-integrations-one-login .btn--cancel'));\n      });\n\n      server.post('/api/v2/integrations/one-logins', function (request) {\n        var oneLogin = JSON.parse(request.requestBody);\n        oneLogin.data.id = 1;\n        assert.ok(true, 'oneLogin is created');\n        assert.deepEqual(oneLogin.data.relationships.company.data, { type: 'companies', id: '1' }, 'sends company info');\n\n        return [201, { 'Content-Type': 'application/json' }, oneLogin];\n      });\n      server.get('/api/v2/integrations/enabled', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          data: [{\n            id: 1,\n            attributes: {\n              'api-key': 'adfasdfadf324324afdadf'\n            },\n            relationships: {\n              company: {\n                data: {\n                  type: 'companies',\n                  id: '1'\n                }\n              }\n            },\n            type: 'one-logins'\n          }]\n        }];\n      });\n    });\n\n    click('.js-integrations-one-login .btn:contains(Save)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings', 'redirected to sync settings after installing');\n    });\n    visit('/settings/integrations');\n    andThen(function () {\n      assert.ok(find('.js-integrations-one-login p:contains(Installed)').length, 'shows OneLogin as installed');\n      assert.ok(find('a:contains(Enabled Integrations)').length, 'Shows enabled tab');\n    });\n    click('a:contains(Enabled Integrations)');\n\n    click('.js-integrations-one-login a:contains(Configure)');\n    andThen(function () {\n      server['delete']('/api/v2/integrations/one-logins/1', function (request) {\n        assert.ok(true, 'makes delete request when clicking disconnect');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-one-login button:contains(Disconnect)');\n      });\n    });\n    andThen(function () {\n      assert.ok(find('.js-integrations-one-login button:contains(Install)').length, 'shows install button');\n    });\n    click('.js-integrations-one-login button:contains(Install)');\n    andThen(function () {\n      server.post('/api/v2/integrations/one-logins', function (request) {\n        var oneLogin = JSON.parse(request.requestBody);\n        oneLogin.data.id = 1;\n\n        return [201, { 'Content-Type': 'application/json' }, oneLogin];\n      });\n    });\n\n    fillIn('.integrations-one-login-api-key', 'adfasdfadf324324afdadf');\n    click('.js-integrations-one-login .btn:contains(Save)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.sync-settings', 'redirected to sync settings after installing');\n    });\n    visit('/settings/integrations/enabled?integration=one-login');\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-one-login .js-integration').length, 'configurable actions are displayed');\n\n      assert.ok(find('.js-integrations-one-login input[type=checkbox]').prop('checked'), 'Shows sync on the hour as enabled');\n\n      server.patch('/api/v2/integrations/one-logins/1', function (request) {\n        var oneLogin = JSON.parse(request.requestBody);\n\n        assert.ok(!oneLogin.data.attributes.enabled, 'makes disable integration request');\n\n        return [204, {\n          'Content-Type': 'application/json'\n        }];\n      });\n    });\n    click('.js-integrations-one-login-enable');\n    andThen(function () {\n      assert.ok(!find('.js-integrations-one-login input[type=checkbox]').prop('checked'), 'Shows sync on the hour as disabled');\n\n      server.patch('/api/v2/integrations/one-logins/1', function (request) {\n        var oneLogin = JSON.parse(request.requestBody);\n\n        assert.ok(oneLogin.data.attributes.enabled, 'makes enable integration request');\n\n        return [204, {\n          'Content-Type': 'application/json'\n        }];\n      });\n    });\n    click('.js-integrations-one-login a:contains(Configure)');\n    click('.js-integrations-one-login-enable');\n    andThen(function () {\n      assert.ok(find('.js-integrations-one-login input[type=checkbox]').prop('checked'), 'Shows sync on the hour as enabled');\n    });\n  });\n\n  qunit.test('It is disabled if other directory integration is installed', function (assert) {\n    assert.expect(3);\n\n    server.get('/api/v2/integrations/enabled', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        data: [{\n          attributes: {\n            created_at: \"2015-06-02T21:02:06Z\",\n            email: \"kamal@envoy.co\",\n            enabled: true,\n            filters: {\n              type: 'unfiltered'\n            }\n          },\n          id: 1,\n          relationships: {\n            company: {\n              data: {\n                id: 1,\n                type: 'company'\n              }\n            }\n          },\n          type: 'google-apps'\n        }]\n      }];\n    });\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index');\n      assert.ok(find('.js-employee-directory-integrations h4:contains(OneLogin)').length, 'includes onelogin in employee directory integrations');\n      assert.ok(find('.js-integrations-one-login .integration-disabledMessage').length, 'shows integration as disabled since google apps is installed');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/one-login-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/one-login-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/one-login-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/salesforce-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance: Integrations > Salesforce', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      var location = FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id }\n      })['location'];\n\n      var locations = [location];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['salesforce']\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/locations/' + location.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { location: location }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { data: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      server.shutdown();\n      Ember['default'].run(application, 'destroy');\n    }\n  });\n\n  qunit.test('adding/removing salesforce', function (assert) {\n    assert.expect(8);\n    var integrationsManager = application.__container__.lookup('service:integrations-manager');\n\n    integrationsManager.authManager = function () {\n      return Ember['default'].RSVP.resolve({\n        status: 'oauth.connected',\n        data: {}\n      });\n    };\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.ok(find('.js-crm-integrations h4:contains(Salesforce)').length, 'includes salesforce in crm integrations');\n      server.post('/api/v2/integrations/salesforce-integrations', function (request) {\n        return [200, { \"Content-Type\": \"application/json\" }, {\n          data: {\n            attributes: {\n              'salesforce-user-id': 'victor@envoy.co'\n            },\n            id: 4,\n            links: {\n              self: 'http://localhost:3000/api/v2/integrations/salesforce-integrations/4'\n            },\n            relationships: {\n              company: {\n                data: {\n                  id: 1,\n                  type: 'company'\n                }\n              }\n            },\n            type: 'salesforce-integrations'\n          }\n        }];\n      });\n    });\n    click('.js-integrations-salesforce button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where salesforce has to be configured');\n      assert.ok(find('.js-integrations-salesforce-config').length, 'has salesforce config box');\n\n      assert.ok(find('.js-integrations-salesforce-config button:contains(Disconnect)').length, 'shows disconnect button');\n    });\n\n    click('a:contains(All Integrations)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-salesforce p:contains(Installed)').length, 'shows salesforce as installed');\n    });\n    click('a:contains(Enabled Integrations)');\n\n    andThen(function () {\n      server['delete']('/api/v2/integrations/salesforce-integrations/4', function (request) {\n        assert.ok(true, 'deletes the integration');\n\n        return [204, { 'Content-Type': 'application/json' }, {}];\n      });\n    });\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-salesforce-config button:contains(Disconnect)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-salesforce button:contains(Install)').length, 'show install button on salesforce');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/salesforce-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/salesforce-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/salesforce-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/saml-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var App = undefined,\n      server = undefined,\n      locations = undefined;\n\n  qunit.module('Acceptance: Integrations > Company SAML', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        primary: true,\n        samlLocationId: 'http://sd.saml.com'\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'New York',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id },\n        samlLocationId: 'http://ny.saml.com'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('adding/updating/removing a saml', function (assert) {\n    assert.expect(27);\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index', 'goes to integrations index page');\n      assert.ok(find('.js-sso-integrations h4:contains(SAML)').length, 'includes SAML in Single Sign-On integrations');\n    });\n\n    click('.js-integrations-saml button:contains(Install)');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where saml has to be configured');\n\n      // commenting this while we disable Safari 5.1 from sauce\n      // assert.ok(\n      //   find('p:contains(/saml/consume)').length,\n      //   'shows saml consumer URL'\n      // );\n      // assert.ok(\n      //   find('p:contains(/saml/init/1)').length,\n      //   'shows redirect URL'\n      // );\n      // Adding\n      assert.ok(find('.js-integrations-saml input').length, 'form field is shown');\n      assert.equal(find('.js-integrations-saml .js-byline').text().trim(), 'Access Envoy via Single Sign-On.', 'byline displayed');\n\n      assert.ok(find('.js-integrations-saml input').length, 'form field is now displayed');\n    });\n\n    fillIn('.integrations-samlfingerprint', 'middlefinger');\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-saml .js-byline').text().trim(), 'middlefinger', 'fingerprint displayed in the byline');\n    });\n    fillIn('.integrations-samlurl', 'http://example.com');\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-saml .js-byline').text().trim(), 'middlefinger', 'only fingerprint is displayed in the byline');\n\n      stubConfirm['default'](assert, false, function () {\n        click('.js-integrations-saml .btn--cancel');\n      });\n\n      server.post('/api/v1/samls', function (request) {\n        var saml = JSON.parse(request.requestBody).saml;\n        saml.id = 1;\n        assert.ok(true, 'saml is created');\n\n        return [201, { 'Content-Type': 'application/json' }, {\n          saml: saml\n        }];\n      });\n    });\n\n    click('.js-integrations-saml .btn:contains(Save)');\n\n    // Updating\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'has flash message');\n      assert.ok(!find('.js-integrations-saml input').length, 'form fields are not shown again');\n      assert.equal(find('.js-integrations-saml .btn').text().trim(), 'Configure', 'button displays Configure now');\n      assert.equal(find('.js-integrations-saml .js-byline').text().trim(), 'middlefinger', 'value displayed');\n\n      server.put('/api/v1/samls/1', function (request) {\n        var saml = JSON.parse(request.requestBody).saml;\n        assert.ok(true, 'updating the right saml');\n        assert.equal(saml.fingerprint, 'newfinger', 'fingerprint updated');\n        assert.equal(saml.url, 'http://newurl.com', 'url updated');\n        saml.id = 1;\n        return [200, { 'Content-Type': 'application/json' }, {\n          saml: saml\n        }];\n      });\n    });\n    click('.js-integrations-saml .btn');\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-saml .integrations-samlurl').val(), 'http://example.com', 'the url is persisted');\n    });\n\n    fillIn('.integrations-samlfingerprint', 'newfinger');\n    fillIn('.integrations-samlurl', 'http://newurl.com');\n    click('.js-integrations-saml .btn:contains(Save)');\n\n    // Removing\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'has flash message');\n      assert.ok(!find('.js-integrations-saml input').length, 'form fields are not shown again');\n      assert.equal(find('.js-integrations-saml .btn').text().trim(), 'Configure', 'button displays Configure now');\n      assert.equal(find('.js-integrations-saml .js-byline').text().trim(), 'newfinger', 'value is displayed');\n    });\n    click('.js-integrations-saml .btn');\n\n    andThen(function () {\n      server['delete']('/api/v1/samls/1', function (request) {\n        assert.ok(true, 'deleting the right saml');\n\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n    });\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-saml .btn:contains(Disconnect):eq(0)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'has flash message');\n      assert.ok(!find('.js-integrations-saml').length, 'saml integration is removed');\n    });\n    click('a:contains(All Integrations)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-saml button:contains(Install)').length, 'show install button on saml');\n    });\n  });\n\n  qunit.test('validation', function (assert) {\n    assert.expect(16);\n\n    visit('/settings/integrations');\n\n    click('.js-integrations-saml button:contains(Install)');\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-saml .btn:contains(Save)').length, 1, 'shows save button');\n\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-saml .btn--cancel');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index', 'goes to integrations index page after canceling');\n    });\n\n    click('.js-integrations-saml button:contains(Install)');\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('a:contains(All Integrations)');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index', 'goes to integrations index page');\n      assert.ok(!find('.js-integrations-saml p:contains(Installed)').length, 'does not show saml as installed');\n    });\n    click('.js-integrations-saml button:contains(Install)');\n    click('.js-integrations-saml .btn:contains(Save)');\n\n    andThen(function () {\n      assert.equal(find('.integrations-samlfingerprint').prev('label').text().trim(), 'Fingerprint can\\'t be blank', 'label shows error');\n      assert.equal(find('.messageBar.error p').text().indexOf('unknown mixin'), -1, 'error message should not be unknown mixin');\n\n      server.post('/api/v1/samls', function (request) {\n        var saml = JSON.parse(request.requestBody).saml;\n        saml.id = 1;\n        assert.ok(true, 'post to end-point since required data is filled');\n\n        return [201, { 'Content-Type': 'application/json' }, {\n          saml: saml\n        }];\n      });\n    });\n\n    fillIn('.integrations-samlfingerprint', 'middlefinger');\n    fillIn('.integrations-samlurl', 'http://example.com');\n    click('.js-integrations-saml .btn:contains(Save)');\n\n    click('.js-integrations-saml .btn:contains(Configure)');\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-saml .integrations-samlfingerprint').prev('label').text().trim(), 'Fingerprint', 'label shows fingerprint');\n\n      server.put('/api/v1/samls/1', function (request) {\n        assert.ok(false, 'should have not put since fingerprint was deleted');\n      });\n    });\n    // clear the fingerprint while url still has a value should trigger validation\n    fillIn('.integrations-samlfingerprint', '');\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-saml .btn:contains(Disconnect)').length, 1, 'shows disconnect buttons');\n    });\n\n    // clear the url as well so disconnect button is displayed\n\n    fillIn('.integrations-samlurl', '');\n    andThen(function () {\n      assert.equal(find('.js-integrations-saml .btn:contains(Disconnect)').length, 1, 'shows disconnect button');\n\n      server['delete']('/api/v1/samls/1', function (request) {\n        assert.ok(true, 'deleting the right saml');\n\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n    });\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-saml .btn:contains(Disconnect):eq(0)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'has flash message');\n      assert.ok(!find('.js-integrations-saml').length, 'saml integration is removed');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/saml-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/saml-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/saml-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/slack-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance: Integrations > Location slack', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n\n      var integrationsManager = application.__container__.lookup('service:integrations-manager');\n\n      integrationsManager.authManager = function (url, width, height) {\n        return Ember['default'].RSVP.resolve({\n          team_name: 'The Avengers'\n        });\n      };\n    },\n    afterEach: function afterEach() {\n      server.shutdown();\n      Ember['default'].run(application, 'destroy');\n    }\n  });\n\n  qunit.test('adding/updating/disabling/enabling/removing a slack', function (assert) {\n    assert.expect(21);\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index', 'goes to integrations index page');\n      assert.ok(find('.js-host-notification-integrations h4:contains(Slack)').length, 'includes slacks in host notifications integrations');\n\n      server.register('PUT', '/api/v1/locations/:id', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n\n        assert.ok(location.slack_notification_enabled, 'enables slack in location');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      server.register('PUT', '/api/v1/companies/:id', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n\n        var connected = company.slack_connected;\n        var teamName = company.slack_team_name;\n\n        assert.ok(connected, 'enables slack');\n        assert.equal(teamName, 'The Avengers', 'sets slack name');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n    click('.js-integrations-slack button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where slack has to be configured');\n\n      assert.ok(find('.js-integrations-slack-config button:contains(Disconnect)').length, 'shows disconnect button');\n      assert.ok(find('.js-integrations-slack-config p:contains(Connected to The Avengers)').length, 'shows team name');\n    });\n    click('a:contains(All Integrations)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-slack p:contains(Installed)').length, 'shows slack as installed');\n    });\n    click('a:contains(Enabled Integrations)');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/:id', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n\n        assert.ok(!location.slack_notification_enabled, 'disables slack in location');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    // Disabling\n    click('.js-integrations-slack-config .btn');\n    click('.js-integrations-slack-config .js-slack-notification');\n\n    // Enabling\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'shows success message');\n\n      assert.ok(!find('.js-integrations-slack-config .js-slack-notification').prop('checked'), 'Shows notifications as disabled');\n\n      server.register('PUT', '/api/v1/locations/:id', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n\n        assert.ok(location.slack_notification_enabled, 'enables slack in location');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    click('.js-integrations-slack-config .js-slack-notification');\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n\n      assert.ok(find('.js-integrations-slack-config .js-slack-notification').prop('checked'), 'Shows notifications as enabled');\n\n      server.register('PUT', '/api/v1/locations/:id', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n\n        assert.ok(!location.slack_notification_enabled, 'disables slack in location');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      server.register('PUT', '/api/v1/companies/:id', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n\n        assert.ok(!company.slack_connected, 'disables slack');\n        assert.equal(company.slack_team_name, 'The Avengers', 'sets slack name');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-slack-config button:contains(Disconnect)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-integrations-slack-config').length, 'slack integration is removed');\n    });\n\n    click('a:contains(All Integrations)');\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-slack button:contains(Install)').length, 'show install button on slack');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/slack-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/slack-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/slack-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/webhook-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance: Integrations > Location webhook', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      server.shutdown();\n      Ember['default'].run(application, 'destroy');\n    }\n  });\n\n  qunit.test('adding/updating/disabling/enabling/removing a webhook', function (assert) {\n    assert.expect(39);\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index', 'goes to integrations index page');\n      assert.ok(find('.js-custom-integrations h4:contains(Webhooks)').length, 'includes webhooks in custom integrations');\n    });\n    click('.js-integrations-webhook button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where webhook has to be configured');\n\n      assert.ok(find('.js-integrations-webhook input').length, 'form field is displayed');\n      assert.equal(find('.js-integrations-webhook .js-byline').text().trim(), 'Write your own Envoy integrations.', 'shows the byline');\n      assert.ok(!find('.js-integrations-webhook button:contains(Disable)').length, 'does not show disable button since webhook is not configured yet');\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-webhook .btn--cancel');\n      });\n    });\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.index', 'goes to integrations index page after clicking cancel');\n      assert.ok(!find('.js-integrations-webhook p:contains(Installed)').length, 'does not show webhook as installed');\n    });\n\n    click('.js-integrations-webhook button:contains(Install)');\n    click('.js-integrations-webhook .btn:contains(Save)');\n    andThen(function () {\n      assert.equal(find('.integrations-webhookurl').prev('label').text().trim(), 'Your Webhook URL can\\'t be blank', 'label shows error');\n    });\n\n    fillIn('.integrations-webhookurl', 'http://example.com');\n    andThen(function () {\n      assert.equal(find('.integrations-webhookurl').prev('label').text().trim(), 'Your Webhook URL', 'error disappears');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-webhook .js-byline').text().trim(), 'http://example.com', 'shows the url');\n      stubConfirm['default'](assert, false, function () {\n        click(find('.js-integrations-webhook .btn--cancel'));\n      });\n\n      server.post('/api/v1/webhooks', function (request) {\n        var webhook = JSON.parse(request.requestBody).webhook;\n        webhook.id = 1;\n        assert.ok(true, 'webhook is created');\n        assert.equal(webhook.location_id, locations[0].id, 'it sends the location_id');\n        return [201, { 'Content-Type': 'application/json' }, {\n          webhook: webhook\n        }];\n      });\n    });\n\n    click('.js-integrations-webhook .btn:contains(Save)');\n\n    // Updating\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(!find('.js-integrations-webhook input').length, 'form fields are not shown again');\n      assert.equal(find('.js-integrations-webhook .btn').text().trim(), 'Configure', 'button displays Configure now');\n      assert.equal(find('.js-integrations-webhook .js-byline').text().trim(), 'http://example.com', 'shows the URL 1');\n    });\n    click('.js-integrations-webhook .btn');\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-webhook .integrations-webhookurl').val(), 'http://example.com', 'the url is persisted');\n    });\n\n    fillIn('.integrations-webhookurl', 'http://example.org');\n    andThen(function () {\n      assert.equal(find('.js-integrations-webhook .js-byline').text().trim(), 'http://example.org', 'shows the URL 2');\n\n      server.register('PUT', '/api/v1/webhooks/:id', function (request) {\n        var webhook = JSON.parse(request.requestBody).webhook;\n        assert.equal(request.params.id, '1', 'updating the right webhook');\n        assert.equal(webhook.url, 'http://example.org', 'url updated');\n        webhook.id = 1;\n        return [204, { 'Content-Type': 'application/json' }, {\n          webhook: webhook\n        }];\n      });\n    });\n    click('.js-integrations-webhook .btn:contains(Save)');\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(!find('.js-integrations-webhook input').length, 'form fields are not shown again');\n      assert.equal(find('.js-integrations-webhook .btn').text().trim(), 'Configure', 'button displays Configure now');\n      assert.equal(find('.js-integrations-webhook .js-byline').text().trim(), 'http://example.org', 'shows the URL 3');\n\n      server.register('PUT', '/api/v1/webhooks/:id', function (request) {\n        var webhook = JSON.parse(request.requestBody).webhook;\n        assert.equal(webhook.enabled, false, 'enabled updated');\n        webhook.id = request.params.id;\n        return [204, { 'Content-Type': 'application/json' }, {\n          webhook: webhook\n        }];\n      });\n    });\n\n    // Disabling\n    click('.js-integrations-webhook .btn');\n    click('.js-integrations-webhook .btn:contains(Disable)');\n\n    // Enabling\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n\n      assert.ok(!find('.js-integrations-webhook input').length, 'form fields are not shown again');\n      assert.equal(find('.js-integrations-webhook .btn').text().trim(), 'Enable', 'button displays Enable now');\n\n      server.register('PUT', '/api/v1/webhooks/:id', function (request) {\n        var webhook = JSON.parse(request.requestBody).webhook;\n        assert.equal(webhook.enabled, true, 'enabled updated');\n        webhook.id = request.params.id;\n        return [204, { 'Content-Type': 'application/json' }, {\n          webhook: webhook\n        }];\n      });\n    });\n    click('.js-integrations-webhook .btn:contains(Enable)');\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n\n    click('.js-integrations-webhook .btn:contains(Configure)');\n\n    // // Removing\n    fillIn('.integrations-webhookurl', '');\n\n    andThen(function () {\n      assert.equal(find('.js-integrations-webhook .js-byline').text().trim(), 'Write your own Envoy integrations.', 'shows the byline');\n      assert.ok(find('.js-integrations-webhook button:contains(Disconnect)').length, 'shows disconnect instead of save since  url is empty');\n\n      server['delete']('/api/v1/webhooks/1', function (request) {\n        assert.ok(true, 'deleting the right webhook');\n\n        return [204, { 'Content-Type': 'application/json' }, {}];\n      });\n    });\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-webhook button:contains(Disconnect):eq(0)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-integrations-webhook p:contains(Installed)').length, 'does not show webhook as installed');\n      assert.ok(find('.js-integrations-webhook button:contains(Install)').length, 'show install button on webhook');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/webhook-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/webhook-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/webhook-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/integrations/zapier-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var application, server, locations;\n\n  qunit.module('Acceptance: Integrations > Zapier', {\n    beforeEach: function beforeEach(assert) {\n      application = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        id: 1,\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: { id: admin.id }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['zapier']\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/' + admin.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v1/admins/me', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { data: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      server.shutdown();\n      Ember['default'].run(application, 'destroy');\n    }\n  });\n\n  qunit.test('adding/updating/disabling/enabling/removing zapier', function (assert) {\n    assert.expect(9);\n    var integrationsManager = application.__container__.lookup('service:integrations-manager');\n\n    integrationsManager.childWindow = function (url) {\n      return Ember['default'].RSVP.reject({});\n    };\n\n    visit('/settings/integrations');\n\n    andThen(function () {\n      assert.ok(find('.js-custom-integrations h4:contains(Zapier)').length, 'includes zapier in custom integrations');\n      server.get('/api/v2/integrations/zapier-integrations', function (request) {\n        return [200, { \"Content-Type\": \"application/json\" }, {\n          data: [{\n            attributes: {\n              'entry-created-count': 2,\n              'grantee-emails': 'john+sf@doe.com,john@doe.com',\n              'invite-created-count': 1,\n              'sign-out-count': 0\n            },\n            id: 4,\n            links: {\n              self: 'http:localhost:3000/api/v2/integrations/zapier-integrations/3'\n            },\n            relationships: {\n              company: {\n                data: {\n                  id: 1,\n                  type: 'company'\n                }\n              }\n            },\n            type: 'zapier-integration'\n          }]\n        }];\n      });\n    });\n    click('.js-integrations-zapier button:contains(Install)');\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.integrations.enabled', 'redirects to enabled integrations where zapier has to be configured');\n      assert.ok(find('.js-integrations-zapier-config').length, 'has zapier config box');\n\n      assert.ok(find('.js-integrations-zapier-config h4:contains(Popular Zaps)').length, 'Configurable actions are displayed');\n\n      assert.ok(find('.js-integrations-zapier-config button:contains(Disconnect)').length, 'shows disconnect button');\n    });\n\n    click('a:contains(All Integrations)');\n    andThen(function () {\n      assert.ok(find('.js-integrations-zapier p:contains(Installed)').length, 'shows zapier as installed');\n    });\n    click('a:contains(Enabled Integrations)');\n\n    andThen(function () {\n      server['delete']('/api/v2/integrations/zapier-integrations/4', function (request) {\n        assert.ok(true, 'deletes the integration');\n\n        return [204, { 'Content-Type': 'application/json' }, {}];\n      });\n    });\n\n    click('.js-integrations-zapier-config a:contains(Configure)');\n\n    andThen(function () {\n      stubConfirm['default'](assert, true, function () {\n        click('.js-integrations-zapier-config button:contains(Disconnect)');\n      });\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-integrations-zapier button:contains(Install)').length, 'show install button on zapier');\n    });\n  });\n\n});","define('garaje/tests/acceptance/integrations/zapier-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance/integrations');\n  QUnit.test('acceptance/integrations/zapier-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/integrations/zapier-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/ipad-nda-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/utils/nda-text', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, ndaText, stubConfirm) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Settings > iPad > NDA', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        config: {\n          id: 1\n        },\n        company: {\n          id: 1\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Yolo Inc',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/payments', function () {\n          return [200, { 'Content-Type': 'application/json' }, { payments: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('toggling document signing', function (assert) {\n    assert.expect(6);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: false\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-nda-toggle input').prop('checked'), 'document signing toggle is off');\n      assert.ok(!find('.js-nda-fields .js-nda-optional-toggle').length, 'the rest of the nda fields are not visible');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n        assert.ok(config.has_nda_page, 'hasNdaPage is now true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n      click('.js-nda-toggle input');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('.js-nda-toggle input').prop('checked'), 'document signing toggle is on');\n      assert.ok(find('.js-nda-fields .js-nda-optional-toggle').length, 'the rest of the nda fields are visible');\n    });\n  });\n\n  qunit.test('toggling \"Allow visitors to skip signing\"', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(find('.js-nda-toggle input').prop('checked'), 'document signing toggle is on');\n      assert.ok(!find('.js-nda-optional-toggle input').prop('checked'), '\"Allow visitors to skip signing\" toggle is off');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n        assert.ok(config.nda_optional, 'ndaOptional is now true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n      click('.js-nda-optional-toggle input');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('nda bcc', function (assert) {\n    assert.expect(15);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.js-nda-bcc .btn').text(), 'Enable', 'button shows Enable');\n      assert.ok(!find('.js-nda-bcc input').length, 'no email input field visible');\n    });\n\n    // Open\n    click('.js-nda-bcc .btn');\n\n    andThen(function () {\n      assert.equal(find('.js-nda-bcc .btn--green').text().trim(), 'Save', 'button shows Save');\n      assert.ok(find('.js-nda-bcc input').length, 'email input field visible');\n    });\n\n    andThen(function () {\n      fillIn('.js-nda-bcc input', 'foo@example.com');\n\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n        assert.equal(config.nda_bcc_email, 'foo@example.com', 'nda_bcc_email is sent');\n        assert.ok(config.nda_bcc_enabled, 'nda_bcc_enabled is true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      stubConfirm['default'](assert, false, function () {\n        click('.js-nda-bcc .btn--cancel');\n      });\n\n      // Save\n      click('.js-nda-bcc .btn--green');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'successful save');\n      assert.equal(find('.js-nda-bcc .btn').text().trim(), 'Edit', 'button shows Edit');\n      assert.ok(!find('.js-nda-bcc input').length, 'no email input field visible');\n    });\n\n    // Reopen\n    click('.js-nda-bcc .btn');\n\n    andThen(function () {\n      fillIn('.js-nda-bcc input', '');\n\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n        assert.equal(config.nda_bcc_email, '', 'nda_bcc_email is sent');\n        assert.ok(!config.nda_bcc_enabled, 'nda_bcc_enabled is false');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      // Save\n      click('.js-nda-bcc .btn--green');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'successful save');\n      assert.equal(find('.js-nda-bcc .btn').text(), 'Enable', 'button shows Enable');\n      assert.ok(!find('.js-nda-bcc input').length, 'no email input field visible');\n    });\n  });\n\n  qunit.test('disabling nda bcc', function (assert) {\n    assert.expect(17);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          nda_bcc_email: 'foo@example.com'\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.js-nda-bcc .btn').text().trim(), 'Edit', 'button shows edit');\n      assert.ok(!find('.js-nda-bcc input').length, 'no email input field visible');\n    });\n\n    click('.js-nda-bcc .btn:contains(Edit)');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(!config.nda_bcc_enabled, 'nda_bcc_enabled set to false');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n      click('.js-nda-bcc .btn:contains(Disable)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-nda-bcc .btn').text().trim(), 'Enable', 'button shows enable');\n      assert.ok(!find('.js-nda-bcc input').length, 'no email input field visible');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(config.nda_bcc_enabled, 'nda_bcc_enabled set to true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n      click('.js-nda-bcc .btn:contains(Enable)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-nda-bcc .btn').text().trim(), 'Edit', 'button shows edit');\n      assert.ok(!find('.js-nda-bcc input').length, 'no email input field visible');\n    });\n\n    click('.js-nda-bcc .btn:contains(Edit)');\n\n    // let's try to fuck it up by clearing the email field\n    // but hit disable, instead of save\n    andThen(function () {\n      fillIn('.js-nda-bcc input', '');\n\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(!config.nda_bcc_enabled, 'nda_bcc_enabled set to false');\n        assert.ok(!config.nda_bcc_email, 'nda_bcc_email is null');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-nda-bcc .btn:contains(Disable)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-nda-bcc .btn').text().trim(), 'Enable', 'button shows enable');\n      assert.ok(!find('.js-nda-bcc input').length, 'no email input field visible');\n    });\n\n    click('.js-nda-bcc .btn:contains(Enable)');\n\n    andThen(function () {\n      assert.equal(find('.js-nda-bcc .btn--green').text().trim(), 'Save', 'button shows save');\n      assert.ok(find('.js-nda-bcc input').length, 'email input field visible');\n    });\n  });\n\n  qunit.test('default visitor type', function (assert) {\n    assert.expect(16);\n\n    var nda, requireResign;\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_multiple_nda: true\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-nda').length, 'no ndas yet');\n    });\n\n    click('.btn:contains(Add a purpose of visit)');\n\n    andThen(function () {\n      nda = find('.js-nda');\n      assert.equal(nda.length, 1, 'one NDA/visitor type added');\n      assert.equal(nda.find('input[type=text]').val(), 'All Visitors', 'first NDA visitor type is All Visitors');\n      assert.ok(!nda.find('input[type=checkbox]').prop('checked'), 'by default, Skip Agreement is disabled');\n      assert.ok(nda.find('textarea').length, 'NDA textarea visible');\n      requireResign = find('.js-require-resign');\n      assert.ok(!requireResign.length, 'require resign checkbox hidden');\n    });\n\n    // overwriting the NDA and then saving\n    fillIn('.js-nda textarea', 'dont steal my idea');\n\n    andThen(function () {\n      requireResign = find('.js-require-resign');\n      assert.ok(requireResign.length, 'require resign checkbox visible');\n      assert.ok(requireResign.find('input').prop('checked'), 'its checked by default');\n    });\n\n    // turn off require resign\n    click('.js-require-resign input');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var configResponse = JSON.parse(req.requestBody).config;\n        configResponse.id = 1;\n        configResponse.nda_require_resign = false;\n\n        var ndaResponse = configResponse.ndas[0];\n\n        assert.equal(ndaResponse.name, 'All Visitors', 'name is All Visitors');\n        assert.ok(!ndaResponse.skippable, 'not skippable');\n        assert.equal(ndaResponse.body, 'dont steal my idea', 'nda body was overwritten');\n        assert.ok(!ndaResponse.require_resign, 'require_resign is false');\n        ndaResponse.require_resign = false;\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-nda .btn:contains(Save)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      nda = find('.js-nda');\n      assert.equal(nda.find('.btn').text(), 'Edit', 'button displays Edit');\n      click(nda.find('.btn'));\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var configResponse = JSON.parse(req.requestBody).config;\n        configResponse.id = 1;\n        configResponse.nda_require_resign = false;\n\n        var ndaResponse = configResponse.ndas[0];\n\n        assert.equal(ndaResponse.body, 'dont steal my idea', 'nda body is still the same');\n        assert.ok(!ndaResponse.require_resign, 'require_resign is false');\n        ndaResponse.require_resign = false;\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-nda .btn:contains(Save)');\n    });\n  });\n\n  qunit.test('toggling multiple nda, create a new one and cancel it', function (assert) {\n    assert.expect(10);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_multiple_nda: true,\n          ndas: [{\n            name: 'Vendors'\n          }, {\n            name: 'Interview'\n          }]\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(find('.js-multiple-nda-toggle input').prop('checked'), 'multiple nda checkbox is checked');\n      assert.equal(find('.js-nda').length, 2, 'two nda rows visible');\n    });\n\n    // disable\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var configResponse = JSON.parse(req.requestBody).config;\n        configResponse.id = 1;\n\n        assert.ok(!configResponse.has_multiple_nda, 'has_multiple_nda is set to false');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n      click('.js-multiple-nda-toggle input');\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-multiple-nda-toggle input').prop('checked'), 'multiple nda checkbox is unchecked');\n      assert.equal(find('.js-nda').length, 0, 'no nda rows visible');\n    });\n\n    // re-enable\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var configResponse = JSON.parse(req.requestBody).config;\n        configResponse.id = 1;\n\n        assert.ok(configResponse.has_multiple_nda, 'has_multiple_nda is set to true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n      click('.js-multiple-nda-toggle input');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-multiple-nda-toggle input').prop('checked'), 'multiple nda checkbox is checked');\n      assert.equal(find('.js-nda').length, 2, 'two nda rows visible');\n    });\n\n    click('a:contains(Add a purpose of visit)');\n\n    andThen(function () {\n      assert.equal(find('.js-nda').length, 3, 'three nda rows visible');\n    });\n\n    click('.js-nda .btn--cancel');\n\n    andThen(function () {\n      assert.equal(find('.js-nda').length, 2, 'two nda rows visible');\n    });\n  });\n\n  qunit.test('deleting a visitor type', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_multiple_nda: true,\n          ndas: [{\n            name: 'Vendors',\n            skippable: true\n          }]\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n    click('.js-nda .js-edit-nda-button');\n\n    andThen(function () {\n      var btn = find('.js-nda .js-delete-nda-button');\n      assert.ok(btn.text().trim(), 'Delete', 'button displays delete');\n\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var configResponse = JSON.parse(req.requestBody).config;\n        configResponse.id = 1;\n\n        assert.ok(!configResponse.ndas.length, 'nda removed');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click(btn);\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-nda').length, 0, 'no ndas left');\n    });\n  });\n\n  qunit.test('no multiple nda', function (assert) {\n    assert.expect(14);\n\n    var requireResign;\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_multiple_nda: false\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-multiple-nda-toggle input').prop('checked'), 'multiple nda checkbox is unchecked');\n      assert.equal(find('.js-nda-text').val(), ndaText['default'], 'default is ndaText');\n      assert.ok(!find('.btn:contains(Add a purpose of visit)').length, 'add purpose of visit button is hidden');\n      requireResign = find('.js-require-resign');\n      assert.ok(!requireResign.length, 'require resign checkbox hidden');\n    });\n\n    fillIn('.js-nda-text', 'changed the standard nda');\n\n    andThen(function () {\n      var requireResign = find('.js-require-resign');\n      assert.ok(requireResign.length, 'require resign checkbox visible');\n      assert.ok(requireResign.find('input').prop('checked'), 'its checked');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.equal(config.nda_text, 'changed the standard nda', 'new nda text');\n        assert.ok(config.nda_require_resign, 'nda require resign is true');\n        config.nda_require_resign = false;\n        config.slideshows = [];\n        config.integrations = [];\n\n        return [200, { 'Content-Type': 'application/json' }, { config: config }];\n      });\n    });\n\n    click('.js-nda-text-save');\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(config.has_multiple_nda, 'has_multiple_nda set to true');\n        assert.ok(!config.nda_require_resign, 'nda require resign is false because we didnt change nda');\n        config.nda_require_resign = false;\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    click('.js-multiple-nda-toggle input');\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(!find('.js-nda-text').length, 'default nda text textarea is gone');\n      assert.ok(find('.btn:contains(Add a purpose of visit)').length, 'add purpose of visit button is displayed');\n    });\n  });\n\n  qunit.test('nda variables - single nda', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_email: false,\n          email_required: false,\n          has_phone: true,\n          phone_required: true,\n          custom_fields: [{\n            type: 'host_notification',\n            label: 'Host',\n            required: true,\n            dropdown: false,\n            options: []\n          }, {\n            label: 'Your Company',\n            required: true,\n            dropdown: false,\n            options: []\n          }]\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    click('.js-nda-bcc .btn');\n\n    andThen(function () {\n      var placeholders = find('.js-nda-variable').toArray().map(function (v) {\n        return $(v).text();\n      }).join(' ');\n      assert.equal(placeholders, '::DATE:: ::COMPANY:: ::NAME:: ::PHONE:: ::FIELD HOST:: ::FIELD YOUR COMPANY::', 'it displays the right variables');\n      fillIn('.js-nda-text', '::DATE:: \\n __DATE__ \\n ::COMPANY:: \\n __COMPANY__ \\n ::FIELD HOST:: \\n __FIELD YOUR COMPANY__ \\n <img>');\n      click('.segmentedControlRight:contains(Preview)');\n    });\n\n    andThen(function () {\n      var formattedToday = moment().format('MMMM Do, YYYY');\n      var expectedMarkup = formattedToday + ' <br> <strong>' + formattedToday + '</strong> <br> Yolo Inc <br> <strong>Yolo Inc</strong> <br> Visitor: HOST <br> <strong>Visitor: YOUR COMPANY</strong> <br> &lt;img&gt;';\n      assert.equal(find('.js-formatted-nda-text').html().trim(), expectedMarkup);\n    });\n  });\n\n  qunit.test('single nda with company name override', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_email: false,\n          email_required: false,\n          has_phone: true,\n          phone_required: true,\n          custom_fields: [{\n            type: 'host_notification',\n            label: 'Host',\n            required: true,\n            dropdown: false,\n            options: []\n          }, {\n            label: 'Your Company',\n            required: true,\n            dropdown: false,\n            options: []\n          }]\n        }\n      }];\n    });\n\n    locations[0].company_name_override = 'Disney';\n\n    visit('/settings/ipad');\n\n    click('.js-nda-bcc .btn');\n\n    fillIn('.js-nda-text', '::COMPANY:: \\n __COMPANY__');\n\n    click('.segmentedControlRight:contains(Preview)');\n\n    andThen(function () {\n      var expectedMarkup = 'Disney <br> <strong>Disney</strong>';\n      assert.equal(find('.js-formatted-nda-text').html().trim(), expectedMarkup);\n    });\n  });\n\n  qunit.test('nda variables - multiple nda', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_multiple_nda: true,\n          has_email: false,\n          email_required: false,\n          has_phone: true,\n          phone_required: true,\n          ndas: [{\n            name: 'Vendors',\n            skippable: false\n          }],\n          custom_fields: [{\n            type: 'host_notification',\n            label: 'Host',\n            required: true,\n            dropdown: false,\n            options: []\n          }, {\n            label: 'Your Company',\n            required: true,\n            dropdown: false,\n            options: []\n          }]\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    click('.js-nda .btn:contains(Edit)');\n\n    andThen(function () {\n      var placeholders = find('.js-nda-variable').toArray().map(function (v) {\n        return $(v).text();\n      }).join(' ');\n      assert.equal(placeholders, '::DATE:: ::COMPANY:: ::NAME:: ::PHONE:: ::FIELD HOST:: ::FIELD YOUR COMPANY::', 'it displays the right variables');\n      fillIn('.js-nda-text', '::DATE:: \\n __DATE__ \\n ::COMPANY:: \\n __COMPANY__ \\n ::FIELD HOST:: \\n __FIELD YOUR COMPANY__ \\n <img>');\n      click('.segmentedControlRight:contains(Preview)');\n    });\n\n    andThen(function () {\n      var formattedToday = moment().format('MMMM Do, YYYY');\n      var expectedMarkup = formattedToday + ' <br> <strong>' + formattedToday + '</strong> <br> Yolo Inc <br> <strong>Yolo Inc</strong> <br> Visitor: HOST <br> <strong>Visitor: YOUR COMPANY</strong> <br> &lt;img&gt;';\n      assert.equal(find('.js-formatted-nda-text').html().trim(), expectedMarkup, 'has expected markup');\n    });\n  });\n\n  qunit.test('multiple nda with company name override', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_multiple_nda: true,\n          has_email: false,\n          email_required: false,\n          has_phone: true,\n          phone_required: true,\n          ndas: [{\n            name: 'Vendors',\n            skippable: false\n          }],\n          custom_fields: [{\n            type: 'host_notification',\n            label: 'Host',\n            required: true,\n            dropdown: false,\n            options: []\n          }, {\n            label: 'Your Company',\n            required: true,\n            dropdown: false,\n            options: []\n          }]\n        }\n      }];\n    });\n\n    locations[0].company_name_override = 'Disney';\n\n    visit('/settings/ipad');\n\n    click('.js-nda .btn:contains(Edit)');\n\n    fillIn('.js-nda-text', '::COMPANY:: \\n __COMPANY__');\n\n    click('.segmentedControlRight:contains(Preview)');\n\n    andThen(function () {\n      var expectedMarkup = 'Disney <br> <strong>Disney</strong>';\n      assert.equal(find('.js-formatted-nda-text').html().trim(), expectedMarkup);\n    });\n  });\n\n  qunit.test('toggling box integration', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          links: { integrations: \"/api/v1/devices/1/integrations\" }\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/devices/1/integrations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        meta: { \"status\": 200 }, \"data\": [{ \"type\": \"box\", \"id\": 15, \"config_id\": 1, \"folder_id\": \"1473253359\", \"folder_name\": \"NDAs\", \"links\": [{ \"rel\": \"self\", \"name\": \"Self\", \"href\": \"http://localhost:3000/api/v1/integrations/box/15\" }] }], \"integrations\": [{ \"type\": \"box\", \"id\": 15, \"config_id\": 1, \"folder_id\": \"1473253359\", \"folder_name\": \"NDAs\", \"links\": [{ \"rel\": \"self\", \"name\": \"Self\", \"href\": \"http://localhost:3000/api/v1/integrations/box/15\" }] }], \"pagination\": { \"limit\": 20, \"offset\": null, \"total\": 1 }, \"links\": [{ \"name\": \"Self\", \"rel\": \"self\", \"href\": \"http://localhost:3000/api/v1/devices/1/integrations\", \"templated\": false }]\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(find('.js-edit-box').length, 'box edit button is shown because there is a current box integration');\n      click('.js-edit-box');\n    });\n\n    andThen(function () {\n\n      server.register('DELETE', '/api/v1/devices/1/integrations/box', function () {\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      assert.equal(find('.js-box-folder-name').text().trim(), 'NDAs', 'we see that the correct folder name is shown within the integration');\n      click('.js-disable-box');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('.js-enable-box').length, 'box enable button is shown because there is no current box integration');\n    });\n  });\n\n  qunit.test('multiple nda dirty tracking', function (assert) {\n    assert.expect(3);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          slideshows: [],\n          integrations: [],\n          has_nda_page: true,\n          has_multiple_nda: true,\n          ndas: [{\n            name: 'Vendors',\n            body: 'hello'\n          }]\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    click('.js-nda .btn:contains(Edit)');\n\n    // dirty the nda title\n    fillIn('.js-nda-title', 'Vendor');\n    fillIn('.js-nda-text', 'nda changed');\n\n    // close the box\n    stubConfirm['default'](assert, true, function () {\n      click('.js-nda .btn--cancel');\n    });\n\n    click('.js-nda .btn:contains(Edit)');\n\n    andThen(function () {\n      assert.equal(find('.js-nda-title').val(), 'Vendors', 'nda title is rolledback');\n      assert.equal(find('.js-nda-text').val(), 'hello', 'nda body is rolledback');\n    });\n  });\n\n});","define('garaje/tests/acceptance/ipad-nda-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/ipad-nda-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/ipad-nda-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/ipad-slideshows-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Settings > iPad > Slideshows', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 2,\n        name: 'SF',\n        config: {\n          id: 1\n        },\n        company: {\n          id: 1\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n\n        this.get('/api/v1/configs/:id', function (req) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: req.params.id,\n              location_id: locations[0].id,\n              slideshows: [],\n              integrations: []\n            }\n          }];\n        });\n\n        this.get('/api/v1/slideshows/:id', function (req) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            slideshow: {\n              id: req.params.id,\n              url: 'http://example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('when there are 5 slideshows, the file input is hidden, droppability is false', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4, 5],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-file-upload-input:visible').length, 'file input is indeed hidden');\n      assert.ok(!find('.js-slideshow-upload').hasClass('droppable'), 'component is not droppable');\n    });\n  });\n\n  qunit.test('when there are less than 5 slideshows, the file input is visible, droppability is true', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(find('.js-file-upload-input:visible').length, 'file input is displayed');\n      assert.ok(find('.js-slideshow-upload').hasClass('droppable'), 'logo component is droppable');\n    });\n  });\n\n  qunit.test('deleting a slideshow', function (assert) {\n    assert.expect(11);\n\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshow_ids: [1, 2]\n        }\n      }];\n    });\n\n    server.register('POST', '/api/v1/configs/:id/refresh', function (request) {\n      assert.equal(request.params.id, '1', 'passed in the config id');\n\n      assert.ok(true, 'refresh endpoint was called');\n\n      return [200, { 'Content-Type': 'application/json' }, {}];\n    });\n\n    visit('/settings/ipad');\n\n    server.register('DELETE', '/api/v1/slideshows/:id', function (req) {\n      assert.ok(true, 'delete was called');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    click('.js-slideshowPreview-wrapper:nth-child(1) .btn');\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-slideshowPreview-wrapper:not(.js-placeholder)').length, 1, 'slideshow removed');\n      // delete the other one\n      click('.js-slideshowPreview-wrapper:nth-child(1) .btn');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-slideshowPreview-wrapper:not(.js-placeholder)').length, 0, 'all slideshows removed');\n      assert.ok(find('.js-slideshows .tokenized-form').length, 'form is still displayed');\n      assert.ok(!find('.js-slideshows .btn:contains(Enable)').length, 'enable button is not visible');\n    });\n  });\n\n  qunit.test('when there are slideshows, the placeholder is hidden', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-slideshowPreview-wrapper.js-placeholder').length, 'placeholder is indeed hidden');\n    });\n  });\n\n  qunit.test('when there are no slideshows, the placeholder is visible', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n    click('.js-slideshows .btn:contains(Enable)');\n\n    andThen(function () {\n      assert.ok(find('.js-slideshowPreview-wrapper.js-placeholder').length, 'placeholder is visible');\n    });\n  });\n\n  qunit.test('when there are no slideshows, the tokenized box is collapsed', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-slideshows .tokenized-form').length, 'form is hidden');\n      assert.ok(find('.js-slideshows .btn:contains(Enable)').length, 'enable button is visible');\n      click('.js-slideshows .btn:contains(Enable)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-slideshows .tokenized-form').length, 'form is displayed');\n      assert.ok(!find('.js-slideshows .btn:contains(Enable)').length, 'enable button is not visible');\n    });\n  });\n\n  qunit.test('adding slideshows doesnt duplicate it', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [],\n          location_id: 2,\n          integrations: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n    click('.js-slideshows .btn:contains(Enable)');\n\n    andThen(function () {\n      assert.equal(find('.js-slideshowPreview-wrapper:not(.js-placeholder)').length, 0, 'no slideshows');\n\n      var controller = App.__container__.lookup('controller:ipad');\n      [1, 2, 3, 4, 5].forEach(function (id) {\n        controller.send('addSlideshow', {\n          slideshow: {\n            id: id,\n            url: 'http://example.com/' + id\n          }\n        });\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-slideshowPreview-wrapper:not(.js-placeholder)').length, 5, '5 slideshows are shown');\n    });\n\n    // the confirm dialog will never be called, because parent didn't\n    // become dirty, hence the expect(2) (instead of 3)\n    stubConfirm['default'](assert, function () {\n      click('a:contains(Account)');\n    });\n  });\n\n  qunit.test('toggle company name on welcome screen copy', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    locations[0].current_version = '1.4.1';\n    locations[0].installed_version = '1.4.1';\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.js-slideshows .liquid-container h4').text(), 'Hide Company Name from Welcome Screen', 'copy for hiding company name');\n    });\n  });\n\n  qunit.test('toggle company logo on welcome screen copy', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4],\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    locations[0].current_version = '1.4.1';\n    locations[0].installed_version = '1.4.1';\n    locations[0].logo = {\n      url: 'assets/tmp/luxoball.png',\n      smallUrl: 'assets/tmp/luxoball-normal.png',\n      thumbUrl: 'assets/tmp/luxoball-thumb.png'\n    };\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.js-slideshows .liquid-container h4').text(), 'Hide Company Logo from Welcome Screen', 'copy for hiding company logo');\n    });\n  });\n\n  qunit.test('toggle welcome image on welcome screen copy', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          slideshow_ids: [1, 2, 3, 4],\n          welcome_image: 'http://example.com',\n          location_id: 1,\n          integrations: []\n        }\n      }];\n    });\n\n    locations[0].current_version = '1.4.1';\n    locations[0].installed_version = '1.4.1';\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.js-slideshows .liquid-container h4').text(), 'Hide Welcome Image from Welcome Screen', 'copy for hiding welcome image');\n    });\n  });\n\n});","define('garaje/tests/acceptance/ipad-slideshows-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/ipad-slideshows-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/ipad-slideshows-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/ipad-visitor-information-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'garaje/tests/helpers/fill-in-with-key-press', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, stubConfirm, fillInWithKeyPress, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, locations, configs;\n\n  qunit.module('Acceptance: Settings > iPad > Visitor Information', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      configs = [{\n        id: 1,\n        location_id: 1,\n        integrations: [],\n        slideshows: []\n      }, {\n        id: 2,\n        location_id: 2,\n        integrations: [],\n        slideshows: []\n      }];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'NY',\n        config: {\n          id: configs[0].id\n        },\n        company: {\n          id: 1\n        }\n      })['location'], FactoryGuy['default'].build('location', {\n        id: 2,\n        name: 'SF',\n        primary: true,\n        config: {\n          id: configs[1].id\n        },\n        company: {\n          id: 1\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/configs/:id', function (request) {\n          var config = configs.find(function (c) {\n            return c.id.toString() === request.params.id;\n          });\n          return [200, { 'Content-Type': 'application/json' }, { config: config }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/employees', function () {\n          return [200, { 'Content-Type': 'application/json' }, { employees: [], meta: { total: 1 } }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('visitor photos', function (assert) {\n    assert.expect(3);\n\n    visit('/settings');\n\n    configs[0].has_photo_page = false;\n    configs[1].has_photo_page = true;\n\n    click('a:contains(iPad)');\n\n    andThen(function () {\n      assert.ok(find('.js-visitor-photos input').prop('checked'), 'visitor photos is on for SF');\n    });\n\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(NY)');\n\n    andThen(function () {\n      assert.ok(!find('.js-visitor-photos input').prop('checked'), 'visitor photos is off for NY');\n    });\n\n    server.register('PUT', '/api/v1/configs/1', function (request) {\n      var config = JSON.parse(request.requestBody).config;\n      config.id = 1;\n      assert.ok(config.has_photo_page, 'has_photo_page changed to true');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    click('.js-visitor-photos input'); // click to toggle the checkbox\n  });\n\n  qunit.test('email and phone removing/adding', function (assert) {\n    assert.expect(9);\n\n    visit('/settings');\n\n    // NY\n    configs[0].has_email = false;\n    configs[0].has_phone = true;\n    configs[0].been_here_before = true;\n    // SF\n    configs[1].has_email = true;\n    configs[1].has_phone = false;\n    configs[0].been_here_before = false;\n\n    click('a:contains(iPad)');\n\n    andThen(function () {\n      assert.ok(find('.js-has-email').length, 'email field is visible for SF');\n      assert.ok(!find('.js-has-phone').length, 'phone field is hidden for SF');\n    });\n\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(NY)');\n\n    andThen(function () {\n      assert.ok(!find('.js-has-email').length, 'email field is hidden for NY');\n      assert.ok(find('.js-has-phone').length, 'phone field is visible for NY');\n    });\n\n    click('.btn:contains(Add a new field)');\n    click('ic-menu-item:contains(Email)');\n\n    andThen(function () {\n      assert.ok(find('.js-has-email').length, 'email close link is visible for NY');\n      assert.ok(find('.js-has-phone').length, 'phone close link is visible for NY');\n    });\n\n    click('.js-has-phone'); // click to remove the phone field\n\n    andThen(function () {\n      assert.ok(find('.js-has-email').length, 'email close link is still visible for NY because been here before is enabled');\n    });\n\n    server.register('PUT', '/api/v1/configs/1', function (request) {\n      var config = JSON.parse(request.requestBody).config;\n      config.id = 1;\n      assert.ok(config.has_email, 'has_email changed to true');\n      assert.ok(!config.has_phone, 'has_phone changed to false');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    click('.btn:contains(Save fields)');\n  });\n\n  qunit.test('email and phone removing disabled if been_here_before is on', function (assert) {\n    assert.expect(3);\n\n    visit('/settings');\n\n    configs[1].has_email = true;\n    configs[1].has_phone = true;\n    configs[1].been_here_before = true;\n\n    click('a:contains(iPad)');\n\n    andThen(function () {\n      assert.ok(find('.js-has-email').length, 'email close link is visible for SF');\n      assert.ok(find('.js-has-phone').length, 'phone close link is visible for SF');\n    });\n\n    click('.js-has-phone'); // click to remove the phone field\n\n    andThen(function () {\n      assert.ok(!find('.js-has-email').length, 'email close link is not visible for SF because been here before is enabled');\n    });\n  });\n\n  qunit.test('email and phone requiring/optional', function (assert) {\n    assert.expect(6);\n\n    visit('/settings');\n\n    // NY\n    configs[0].email_required = false;\n    configs[0].phone_required = true;\n    // SF\n    configs[1].email_required = true;\n    configs[1].phone_required = false;\n\n    click('a:contains(iPad)');\n\n    andThen(function () {\n      assert.ok(find('.js-email-required').prop('checked'), 'email is required for SF');\n      assert.ok(!find('.js-phone-required').prop('checked'), 'phone is optional for SF');\n    });\n\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(NY)');\n\n    andThen(function () {\n      assert.ok(!find('.js-email-required').prop('checked'), 'email is optional for NY');\n      assert.ok(find('.js-phone-required').prop('checked'), 'phone is required for NY');\n    });\n\n    click('.js-email-required'); // click to toggle the checkbox\n    click('.js-phone-required'); // click to toggle the checkbox\n\n    server.register('PUT', '/api/v1/configs/1', function (request) {\n      var config = JSON.parse(request.requestBody).config;\n      config.id = 1;\n      assert.ok(config.email_required, 'email_required changed to true');\n      assert.ok(!config.phone_required, 'phone_required changed to false');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    click('.btn:contains(Save fields)');\n  });\n\n  qunit.test('adding a custom text field', function (assert) {\n    assert.expect(10);\n\n    visit('/settings');\n    click('a:contains(iPad)');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 0, 'there are no custom fields');\n    });\n\n    click('.btn:contains(Add a new field)');\n    click('ic-menu-item:contains(Text field)');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 1, 'there is one custom field');\n      assert.equal(find('.custom-field input').attr('placeholder'), 'Give this field a name', 'placeholder is correct');\n      assert.ok(!find('.custom-field .dropdownFields').length, 'and its not a dropdown');\n    });\n\n    fillIn('.js-label', 'Occupation');\n    click('.custom-field input[type=checkbox]'); // toggle required to true\n    // saving\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/2', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 2;\n\n        var customFields = config.custom_fields;\n        assert.equal(customFields.length, 1, '1 custom field sent back');\n\n        var textfield = customFields[0];\n        assert.ok(!textfield.dropdown, 'its a textfield');\n        assert.equal(textfield.label, 'Occupation', 'label is correct');\n        assert.ok(!textfield.options.length, 'no options');\n        assert.ok(textfield.required, 'its required');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n\n    click('.btn:contains(Save fields)');\n    click('.custom-field .action');\n\n    // deleting\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/2', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 2;\n\n        var customFields = config.custom_fields;\n        assert.ok(!customFields.length, 'custom fields are empty');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n    });\n    click('.btn:contains(Save fields)');\n  });\n\n  qunit.test('adding a custom dropdown field', function (assert) {\n    assert.expect(34);\n\n    var placeholderInput;\n\n    visit('/settings');\n    click('a:contains(iPad)');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 0, 'there are no custom fields');\n    });\n\n    click('.btn:contains(Add a new field)');\n    click('ic-menu-item:contains(Dropdown)');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 1, 'there is one custom field');\n      assert.ok(find('.custom-field .dropdownFields').length, 'and its a dropdown');\n\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.equal(placeholderInput.length, 1, 'it contains a single placeholder option');\n      assert.equal(placeholderInput.val(), '', 'and its empty');\n    });\n\n    fillInWithKeyPress['default']('.custom-field .dropdownFields input', 'a', 'keyup');\n\n    andThen(function () {\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.equal(placeholderInput.length, 2, 'it added a new placeholder field');\n      assert.equal(Ember['default'].$(placeholderInput.get(1)).val(), '', 'and its empty');\n      assert.equal(Ember['default'].$(placeholderInput.get(0)).val(), 'a', 'while the first input has our letter');\n    });\n\n    fillIn('.js-label', 'What is your favorite color?');\n    fillInWithKeyPress['default']('.dropdownField:eq(0) input', 'Red', 'keyup');\n    fillInWithKeyPress['default']('.dropdownField:eq(1) input', '  ', 'keyup');\n    fillInWithKeyPress['default']('.dropdownField:eq(2) input', 'Blue', 'keyup');\n\n    andThen(function () {\n      placeholderInput = find('.custom-field textarea');\n      assert.ok(!placeholderInput.length, 'no textarea visible');\n\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.equal(placeholderInput.length, 4, 'four options visible');\n      assert.equal(Ember['default'].$(placeholderInput.get(0)).val(), 'Red', 'first is Red');\n      assert.equal(Ember['default'].$(placeholderInput.get(1)).val(), '  ', 'second is spaces');\n      assert.equal(Ember['default'].$(placeholderInput.get(2)).val(), 'Blue', 'third is Blue');\n      assert.equal(Ember['default'].$(placeholderInput.get(3)).val(), '', 'fourth is empty');\n    });\n\n    click('a:contains(Add multiple options at once)');\n\n    andThen(function () {\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.ok(!placeholderInput.length, 'no options visible');\n\n      placeholderInput = find('.custom-field textarea');\n      assert.equal(placeholderInput.val(), 'Red\\nBlue', 'options displayed as a textarea, removing blank options');\n    });\n\n    fillIn('.custom-field textarea', 'Red\\nBlue\\n\\nYellow');\n\n    click('a:contains(Switch to individual inputs)');\n\n    andThen(function () {\n      placeholderInput = find('.custom-field textarea');\n      assert.ok(!placeholderInput.length, 'no textarea visible');\n\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.equal(placeholderInput.length, 4, 'three options visible');\n\n      assert.equal(Ember['default'].$(placeholderInput.get(0)).val(), 'Red', 'first is Red');\n      assert.equal(Ember['default'].$(placeholderInput.get(1)).val(), 'Blue', 'second is Blue');\n      assert.equal(Ember['default'].$(placeholderInput.get(2)).val(), 'Yellow', 'third is Yellow');\n      assert.equal(Ember['default'].$(placeholderInput.get(3)).val(), '', 'fourth is empty');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/2', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 2;\n\n        var customFields = config.custom_fields;\n        assert.equal(customFields.length, 1, '1 custom field sent back');\n\n        var dropdown = customFields[0];\n        assert.ok(dropdown.dropdown, 'its a dropdown');\n        assert.equal(dropdown.label, 'What is your favorite color?', 'label is correct');\n\n        var options = [{ value: 'Red' }, { value: 'Blue' }, { value: 'Yellow' }];\n        assert.deepEqual(dropdown.options, options, 'options sent back');\n\n        assert.ok(!dropdown.required, 'not required by default');\n\n        assert.ok(!dropdown.is_textarea, 'send is_textarea as false');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.btn:contains(Save fields)');\n    });\n\n    click('a:contains(Add multiple options at once)');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/2', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 2;\n\n        var customFields = config.custom_fields;\n        assert.equal(customFields.length, 1, '1 custom field sent back');\n\n        var dropdown = customFields[0];\n        assert.ok(dropdown.dropdown, 'its a dropdown');\n        assert.equal(dropdown.label, 'What is your favorite color?', 'label is correct');\n\n        var options = 'Red\\nBlue\\nYellow';\n        assert.deepEqual(dropdown.text_options, options, 'options sent back as text options');\n\n        assert.ok(!dropdown.required, 'not required by default');\n\n        assert.ok(dropdown.is_textarea, 'send is_textarea as true');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.btn:contains(Save fields)');\n    });\n  });\n\n  qunit.test('if a user adds a custom field, does not save the form and then navigates away, their should be prompted that their will lose any unsaved changes. If their chooses to continue, any custom field changes will be rolled back.', function (assert) {\n    assert.expect(3);\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 0, 'there are no custom fields');\n    });\n\n    click('.btn:contains(Add a new field)');\n    click('ic-menu-item:contains(Text field)');\n\n    andThen(function () {\n      fillIn('.js-label', 'Occupation');\n    });\n\n    stubConfirm['default'](assert, true, function () {\n      click('a:contains(Account)');\n    });\n\n    click('a:contains(iPad)');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 0, 'there are no custom fields');\n    });\n  });\n\n  qunit.test('if a user adds a custom field, does not save the form and then navigates away, s/he should be prompted that s/he will lose any unsaved changes. If s/he cancels, the route transition will be cancelled and the user can then save.', function (assert) {\n    assert.expect(8);\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 0, 'there are no custom fields');\n    });\n\n    click('.btn:contains(Add a new field)');\n    click('ic-menu-item:contains(Text field)');\n\n    andThen(function () {\n      fillIn('.js-label', 'Occupation');\n    });\n\n    stubConfirm['default'](assert, false, function () {\n      click('a:contains(Account)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 1, 'there is one custom field');\n    });\n\n    // saving\n    andThen(function () {\n      click('.custom-field input[type=checkbox]'); // toggle required to true\n\n      server.register('PUT', '/api/v1/configs/2', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 2;\n\n        var customFields = config.custom_fields;\n        assert.equal(customFields.length, 1, '1 custom field sent back');\n\n        var textfield = customFields[0];\n        assert.ok(!textfield.dropdown, 'its a textfield');\n        assert.equal(textfield.label, 'Occupation', 'label is correct');\n        assert.ok(!textfield.options.length, 'no options');\n        assert.ok(textfield.required, 'its required');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.btn:contains(Save fields)');\n    });\n  });\n\n  qunit.test('add a host field immediately once the user enables a notification', function (assert) {\n    assert.expect(4);\n\n    visit('/settings/notifications');\n\n    click('.btn:contains(Enable host notifications)');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/2', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 2;\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-email-notification');\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/configs/2', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          config: {\n            id: 2,\n            location_id: 2,\n            integrations: [],\n            slideshows: [],\n            custom_fields: [{\n              type: 'host_notification',\n              label: 'Host',\n              required: false,\n              dropdown: false,\n              options: []\n            }],\n            localized_fields: [{\n              field: 'Your Full Name',\n              localized: 'Your Full Name'\n            }, {\n              field: 'Your Email Address',\n              localized: 'Your Email Address'\n            }, {\n              field: 'Your Phone Number',\n              localized: 'Your Phone Number'\n            }, {\n              field: 'Host',\n              localized: 'Host'\n            }]\n          }\n        }];\n      });\n\n      click('a:contains(iPad)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 1, 'there is one custom field');\n      assert.equal(find('.custom-field input[type=text]').val(), 'Host', 'its the host field');\n      assert.equal(find('.custom-field input').attr('placeholder'), 'Host', 'host field placeholder correct');\n      click('.custom-field input[type=checkbox]'); // toggle required to true\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/2', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 2;\n        assert.ok(config.custom_fields[0].required, 'it toggles who are you here to see required');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.btn:contains(Save fields)');\n    });\n  });\n\n});","define('garaje/tests/acceptance/ipad-visitor-information-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/ipad-visitor-information-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/ipad-visitor-information-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/ipad-welcome-image-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App = undefined,\n      server = undefined;\n\n  qunit.module('Acceptance: Settings > iPad > Welcome Image', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var locations = [FactoryGuy['default'].build('location', {\n        name: 'SF',\n        config: {\n          id: 1\n        },\n        company: {\n          id: company.id\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: company\n          }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/configs/:id', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: request.params.id,\n              location_id: request.params.id,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('welcome image is set', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: [],\n          welcome_image: 'http://example.com'\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok($('.js-welcome-image .tokenized-form').length, 'form is visible');\n      assert.ok(!find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is hidden');\n      assert.equal(find('.js-welcome-image .js-logo-preview').attr('src'), 'http://example.com', 'uses welcome image url');\n    });\n  });\n\n  qunit.test('deleting welcome image does not collapse the tokenized box', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: [],\n          welcome_image: 'http://example.com'\n        }\n      }];\n    });\n    server.register('PUT', '/api/v1/configs/1', function (req) {\n      var config = JSON.parse(req.requestBody).config;\n      config.id = 1;\n      assert.ok(!config.welcome_image, 'welcomeImage is set to null');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    visit('/settings/ipad');\n    click('.js-welcome-image .btn:contains(Delete)');\n\n    andThen(function () {\n      assert.ok(find('.js-welcome-image .tokenized-form').length, 'form is visible');\n      assert.ok(!find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is hidden');\n      assert.equal(find('.js-welcome-image .js-logo-preview').attr('src'), 'assets/images/welcome-placeholder.png', 'uses placeholder url');\n    });\n  });\n\n  qunit.test('expanding the tokenized box, testing droppability', function (assert) {\n    server.register('GET', '/api/v1/configs/1', function (req) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-welcome-image-upload').hasClass('droppable'), 'component is not droppable');\n      assert.ok(!find('.js-welcome-image .tokenized-form').length, 'form is hidden');\n      assert.ok(find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is visible');\n      click('.js-welcome-image .btn:contains(Enable)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-welcome-image-upload').hasClass('droppable'), 'component is droppable');\n      assert.ok(find('.js-welcome-image .tokenized-form').length, 'form is displayed');\n      assert.ok(!find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is not visible');\n    });\n  });\n\n});","define('garaje/tests/acceptance/ipad-welcome-image-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/ipad-welcome-image-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/ipad-welcome-image-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/ipad-welcome-screen-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var App, server, locations, views;\n\n  var text = function text(element) {\n    return element.text().trim().replace(/\\s+/g, ' ');\n  };\n\n  qunit.module('Acceptance: Settings > iPad > Welcome Screen', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        config: {\n          id: 1\n        },\n        company: {\n          id: 1\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/locations/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, { location: locations[0] }];\n        });\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n        this.get('/api/v1/configs/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: 1,\n              location_id: 1,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n\n      views = App.__container__.lookup('-view-registry:main');\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('toggling options', function (assert) {\n    assert.expect(4);\n\n    locations[0].email_notification_enabled = true;\n\n    server.register('GET', '/api/v1/employees', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [{ id: 1, name: 'foo' }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          accept_deliveries: false,\n          been_here_before: false,\n          self_sign_out: true,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-been-here-before').prop('checked'), 'Been here before is off');\n      assert.ok(find('.js-self-sign-out').prop('checked'), 'Self sign out is on');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(config.been_here_before, 'Been here before is on');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-been-here-before');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(!config.self_sign_out, 'Self sign out is off');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-self-sign-out');\n    });\n\n    // navigate away, should not hit the assertion\n    stubConfirm['default'](assert, false, false, function () {\n      click('a:contains(Account)');\n    });\n  });\n\n  qunit.test('accept deliveries', function (assert) {\n    assert.expect(18);\n\n    locations[0].email_notification_enabled = true;\n\n    server.register('GET', '/api/v1/employees', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [{ id: 1, name: 'foo' }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          accept_deliveries: false,\n          location_id: locations[0].id,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.js-enable-deliveries-button').text(), 'Enable', 'button shows Enable');\n      assert.ok(!find('.js-accept-deliveries .select2-container').length, 'no delivery person field visible');\n    });\n\n    // Open\n    andThen(function () {\n      server.register('GET', '/api/v1/employees', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ id: 1, name: 'foo' }]\n        }];\n      });\n\n      click('.js-accept-deliveries .btn');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-save-deliveries-button').text().trim(), 'Save', 'button shows Save');\n      assert.ok(find('.js-accept-deliveries .select2-container').length, 'delivery person field visible');\n    });\n\n    click('.select2-choice');\n\n    andThen(function () {\n      var componentId = 'deliveryPersonSelect';\n      var component = views[componentId];\n\n      server.register('GET', '/api/v1/employees', function (request) {\n        assert.equal(request.queryParams.name, 'bla', 'sends in the name param');\n        assert.equal(request.queryParams.location_id, locations[0].id, 'sends in the location_id');\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ id: 1, name: 'blabla' }, { id: 2, name: 'blablabla' }]\n        }];\n      });\n\n      find('.select2-container').select2('search', 'bla');\n      var store = App.__container__.lookup('service:store');\n\n      // there's a problem trying to programmatically selecting\n      // a select2 option, so our best effort here is to set\n      // the component value directly\n      server.register('GET', '/api/v1/employees/1', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employee: {\n            id: 1,\n            name: 'blabla'\n          }\n        }];\n      });\n\n      return store.find('employee', 1).then(function (employee) {\n        component.set('value', employee);\n      });\n    });\n\n    // should prompt if trying to leave\n    stubConfirm['default'](assert, false, function () {\n      click('a:contains(Account)');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n        assert.equal(config.delivery_person_id, 1, 'delivery_person_id set');\n        assert.ok(config.accept_deliveries, 'accept_deliveries is true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      stubConfirm['default'](assert, false, function () {\n        click('.js-accept-deliveries .btn--cancel');\n      });\n\n      click('.js-save-deliveries-button');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-edit-deliveries-button').text().trim(), 'Edit', 'button shows Edit');\n      assert.ok(!find('.js-accept-deliveries .select2-container').length, 'no delivery person field visible');\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/employees', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [{ id: 1, name: 'blabla' }, { id: 2, name: 'blablabla' }]\n        }];\n      });\n\n      click('.js-edit-deliveries-button');\n    });\n\n    click('.select2-search-choice-close');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n        assert.equal(config.delivery_person_id, null, 'delivery_person_id unset');\n        assert.ok(!config.accept_deliveries, 'accept_deliveries is false');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-save-deliveries-button');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-accept-deliveries .btn').text(), 'Enable', 'button shows Enable');\n      assert.ok(!find('.js-accept-deliveries .select2-container').length, 'no delivery person field visible');\n    });\n  });\n\n  qunit.test('disabling accept deliveries', function (assert) {\n    assert.expect(19);\n\n    locations[0].email_notification_enabled = true;\n\n    server.register('GET', '/api/v1/employees', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [{ id: 1, name: 'blabla' }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          integrations: [],\n          slideshows: [],\n          accept_deliveries: true,\n          location_id: locations[0].id,\n          delivery_person_id: 1\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/employees/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employee: {\n          id: 1,\n          name: 'blabla'\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.equal(find('.js-edit-deliveries-button').text().trim(), 'Edit', 'button shows edit');\n      assert.ok(!find('.js-accept-deliveries .select2-container').length, 'no delivery person field visible');\n      assert.equal(find('.js-accept-deliveries p').text().trim(), 'Notify blabla when packages arrive.', 'by line shows the name');\n    });\n\n    click('.js-edit-deliveries-button');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(!config.accept_deliveries, 'accept_deliveries set to false');\n        assert.equal(config.delivery_person_id, 1, 'it didnt clear delivery person');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n      click('.js-accept-deliveries .btn:contains(Disable)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-enable-deliveries-button').text().trim(), 'Enable', 'button shows enable');\n      assert.ok(!find('.js-accept-deliveries .select2-container').length, 'no delivery person field visible');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(config.accept_deliveries, 'accept_deliveries set to true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n      click('.js-enable-deliveries-button');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-accept-deliveries .btn').text().trim(), 'Edit', 'button shows edit');\n      assert.ok(!find('.js-accept-deliveries .select2-container').length, 'no delivery person field visible');\n    });\n\n    click('.js-edit-deliveries-button');\n\n    // let's try to fuck it up by clearing the email field\n    // but hit disable, instead of save\n    click('.select2-search-choice-close');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(!config.accept_deliveries, 'accept_deliveries set to false');\n        assert.ok(!config.delivery_person_id, 'delivery_person_id is null');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-accept-deliveries .btn:contains(Disable)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-accept-deliveries .btn').text().trim(), 'Enable', 'button shows enable');\n      assert.ok(!find('.js-accept-deliveries .select2-container').length, 'no delivery person field visible');\n    });\n\n    click('.js-accept-deliveries .btn:contains(Enable)');\n\n    andThen(function () {\n      assert.equal(find('.js-save-deliveries-button').text().trim(), 'Save', 'button shows save');\n      assert.ok(find('.js-accept-deliveries .select2-container').length, 'delivery person field visible');\n    });\n  });\n\n  qunit.test('accept deliveries pre-condition: must enable host notification and have employees', function (assert) {\n    assert.expect(3);\n\n    server.register('GET', '/api/v1/employees', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: []\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          accept_deliveries: false,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    click('.js-accept-deliveries .btn');\n\n    andThen(function () {\n      assert.equal(text(find('.js-accept-deliveries .js-precondition')), 'You must enable Host Notification and Employee Directory to use Delivery Notifications.', 'need host notification and employee to be enabled');\n      assert.ok(!find('.js-save-deliveries-button').length, 'save button is not visible');\n      assert.equal(find('.js-accept-deliveries .select2-chosen').text().trim(), 'Please fix issues below to enable :)', 'delivery person field visible');\n    });\n  });\n\n  qunit.test('accept deliveries pre-condition: must have employees', function (assert) {\n    assert.expect(3);\n\n    locations[0].email_notification_enabled = true;\n\n    server.register('GET', '/api/v1/employees', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: []\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          accept_deliveries: false,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    click('.js-accept-deliveries .btn');\n\n    andThen(function () {\n      assert.equal(text(find('.js-accept-deliveries .js-precondition')), 'You must enable Employee Directory to use Delivery Notifications.', 'need employees to be enabled');\n      assert.ok(!find('.js-accept-deliveries .tokenized-btn .btn-green').length, 'save button is not visible');\n      assert.equal(find('.js-accept-deliveries .select2-chosen').text().trim(), 'Please fix issues below to enable :)', 'delivery person field visible');\n    });\n  });\n\n  qunit.test('accept deliveries pre-condition: must enable host notification', function (assert) {\n    assert.expect(3);\n\n    server.register('GET', '/api/v1/employees', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [{ id: 1, name: 'foo' }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          accept_deliveries: false,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    click('.js-accept-deliveries .btn');\n\n    andThen(function () {\n      assert.equal(text(find('.js-accept-deliveries .js-precondition')), 'You must enable Host Notification to use Delivery Notifications.', 'need Host Notification to be enabled');\n      assert.ok(!find('.js-accept-deliveries .tokenized-btn .btn--green').length, 'save button is not visible');\n      assert.equal(find('.js-accept-deliveries .select2-chosen').text().trim(), 'Please fix issues below to enable :)', 'delivery person field visible');\n    });\n  });\n\n  qunit.test('accept deliveries pre-condition met', function (assert) {\n    assert.expect(2);\n\n    locations[0].email_notification_enabled = true;\n\n    server.register('GET', '/api/v1/employees', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [{ id: 1, name: 'foo' }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          accept_deliveries: false,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    click('.js-accept-deliveries .btn');\n\n    andThen(function () {\n      assert.ok(!find('.js-accept-deliveries .js-precondition').length, 'no precondition message');\n      assert.ok(find('.js-save-deliveries-button').length, 'save button is visible');\n    });\n  });\n\n  qunit.test('been here before disabled if you have email and phone disabled', function (assert) {\n    assert.expect(5);\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          been_here_before: false,\n          has_email: false,\n          has_phone: false,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/settings/ipad');\n\n    andThen(function () {\n      assert.ok(!find('.js-been-here-before').prop('checked'), 'Been here before is off');\n      assert.ok(find('.js-been-here-before').prop('disabled'), 'Been here before is disabled');\n      assert.ok(find('.js-bhb').length, 'been here message is visible');\n    });\n\n    click('.btn:contains(Add a new field)');\n    click('ic-menu-item:contains(Email)');\n\n    andThen(function () {\n      assert.ok(!find('.js-been-here-before').prop('disabled'), 'Been here before is enabled');\n      assert.ok(!find('.js-bhb').length, 'been here message is not visible');\n    });\n  });\n\n});","define('garaje/tests/acceptance/ipad-welcome-screen-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/ipad-welcome-screen-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/ipad-welcome-screen-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/location-admin-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/fixtures/admin', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, __dep5__, stubConfirm) {\n\n  'use strict';\n\n  var App, server, locations, admins;\n\n  qunit.module('Acceptance: Location admin', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      admins = [FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com',\n        password: null,\n        new_password: null,\n        new_password_confirmation: null\n      })['admin'], FactoryGuy['default'].build('admin', {\n        name: 'Ben Angel',\n        email: 'ben@angel.com',\n        password: null,\n        new_password: null,\n        new_password_confirmation: null\n      })['admin']];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        admin: {\n          id: admins[0].id\n        }\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'New York',\n        company: {\n          id: company.id\n        },\n        admin: {\n          id: admins[1].id\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n\n        this.put('/api/v1/locations/1', function (req) {\n          var location = JSON.parse(req.requestBody).location;\n          location.id = 1;\n          return [200, { 'Content-Type': 'application/json' }, { location: location }];\n        });\n\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n\n        this.put('/api/v1/companies/' + company.id, function (request) {\n          var company = JSON.parse(request.requestBody).company;\n          company.id = 1;\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n\n        this.get('/api/v1/admins/:id', function (request) {\n          var id = request.params.id;\n          if (id === 'me') {\n            id = admins[0].id.toString();\n          }\n          var admin = admins.find(function (i) {\n            return i.id.toString() === id;\n          });\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n\n        this.put('/api/v1/admins/:id', function (request) {\n          var admin = admins.find(function (i) {\n            return i.id.toString() === request.params.id;\n          });\n          var body = JSON.parse(request.requestBody).admin;\n          if (admin === admins[0]) {\n            if (!Ember['default'].isBlank(body.new_password)) {\n              assert.equal(body.password, 'oldpassword', 'old password');\n              assert.equal(body.new_password, 'newpassword', 'new password');\n              assert.equal(body.new_password_confirmation, 'newpassword', 'new password confirmation');\n            } else {\n              assert.equal(body.name, 'Laurentiu Gadea', 'updated admin name');\n              assert.equal(body.email, 'laurentiu@caspida.com', 'updated admin email');\n            }\n          }\n          admin.name = body.name;\n          admin.email = body.email;\n          return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('editing the admin', function (assert) {\n    assert.expect(15);\n\n    var adminDiv;\n\n    visit('/settings');\n\n    andThen(function () {\n      adminDiv = find('.js-location-admin');\n      assert.equal(adminDiv.find('.js-admin-gravatar').attr('src'), '//www.gravatar.com/avatar/9c716c18d7193e5bb7708ff8137d0ada?s=100&d=%2Fassets%2Fimages%2Ffeatures%2Fselfie.png', 'avatar is pulled from gravatar');\n      assert.equal(adminDiv.find('.js-admin-name').text(), 'Larry Gadea', 'admin name displayed');\n      assert.equal(adminDiv.find('.js-admin-email').text(), 'larry@caspida.com', 'admin email displayed');\n      assert.ok(!adminDiv.find('input').length, 'form fields are not shown yet');\n      click(adminDiv.find('.btn:contains(Edit)'));\n    });\n\n    andThen(function () {\n      adminDiv = find('.js-location-admin');\n      assert.ok(adminDiv.find('input').length, 'form fields are now displayed');\n      assert.equal(adminDiv.find('.location-adminpassword').prev('label').text().trim(), 'Password', 'label is Password');\n    });\n\n    fillIn('.location-adminname', '');\n    fillIn('.location-adminemail', '');\n    fillIn('.location-adminphone', '4152');\n\n    click('.js-location-admin .btn:contains(Save)');\n\n    andThen(function () {\n      adminDiv = find('.js-location-admin');\n      assert.equal(adminDiv.find('.location-adminname').prev('label').text().trim(), 'Full Name can\\'t be blank', 'full name validation');\n      assert.equal(adminDiv.find('.location-adminemail').prev('label').text().trim(), 'Email Address can\\'t be blank', 'email validation');\n      assert.equal(adminDiv.find('.intl-tel-input').prev('label').text().trim(), 'Mobile Number is too short', 'phone validation');\n    });\n\n    fillIn('.location-adminname', 'Laurentiu Gadea');\n    fillIn('.location-adminphone', '7137652211');\n\n    // change email to see the password required field\n    fillIn('.location-adminemail', 'laurentiu@caspida.com');\n    andThen(function () {\n      adminDiv = find('.js-location-admin');\n      assert.equal(adminDiv.find('.location-adminpassword').prev('label').text().trim(), 'Password required', 'label is Password required');\n    });\n\n    fillIn('.location-adminpassword', 'oldpassword');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/admins/:id', function (request) {\n        var admin = admins.find(function (i) {\n          return i.id.toString() === request.params.id;\n        });\n        var body = JSON.parse(request.requestBody).admin;\n        assert.equal(body.password, 'oldpassword', 'sent in the password');\n        assert.equal(body.email, 'laurentiu@caspida.com', 'updated admin email');\n\n        admin.name = body.name;\n        admin.email = body.email;\n\n        return [200, { 'Content-Type': 'application/json' }, { admin: admin }];\n      });\n\n      click(adminDiv.find('.btn:contains(Save)'));\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'shows success message');\n      assert.ok(!adminDiv.find('input').length, 'form fields are not shown again');\n    });\n\n    click('.js-location-admin .btn:contains(Edit)');\n\n    andThen(function () {\n      adminDiv = find('.js-location-admin');\n      assert.equal(adminDiv.find('.location-adminpassword').prev('label').text().trim(), 'Password', 'label is Password');\n    });\n  });\n\n  qunit.test('changing the password', function (assert) {\n    assert.expect(10);\n\n    var adminDiv;\n\n    visit('/settings');\n    click('.js-location-admin .btn:contains(Edit)');\n\n    andThen(function () {\n      adminDiv = find('.js-location-admin');\n      assert.equal(adminDiv.find('input[type=password]').length, 0, 'no password inputs are visible');\n      assert.equal(adminDiv.find('.location-adminpassword').prev('label').text().trim(), 'Password', 'label is Password');\n    });\n\n    click('a:contains(Change password)');\n\n    andThen(function () {\n      assert.equal(adminDiv.find('input[type=password]').length, 3, 'new password fields appear');\n      assert.equal(adminDiv.find('input.location-adminpassword').prev('label').text().trim(), 'Current password', 'label changes to Current Password');\n    });\n\n    fillIn('.location-adminpassword', 'oldpassword');\n    fillIn('.location-adminnewpassword', 'newpassword');\n    fillIn('.location-adminnewpasswordconfirmation', 'newpassword');\n\n    click('.js-location-admin .btn:contains(Save)'); // saves and resets to unedited state\n    click('.js-location-admin .btn:contains(Edit)'); // click Edit to expand the form again\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(adminDiv.find('input[type=password]').length, 0, 'no password inputs are visible');\n      assert.equal(adminDiv.find('.location-adminpassword').prev('label').text().trim(), 'Password', 'label is Password');\n    });\n  });\n\n  qunit.test('password confirmation validation', function (assert) {\n    visit('/settings');\n    click('.js-location-admin .btn:contains(Edit)');\n    click('a:contains(Change password)');\n\n    fillIn('.location-adminpassword', 'abc');\n    fillIn('.location-adminnewpassword', 'def');\n\n    andThen(function () {\n      assert.ok(!find('.location-adminnewpasswordconfirmation').hasClass('error'), 'input error class not applied yet');\n      assert.ok(!find('input.location-adminnewpasswordconfirmation').prev('label').hasClass('error-description'), 'label error class not applied yet');\n      assert.equal(find('input.location-adminnewpasswordconfirmation').prev('label').text().trim(), 'New password confirmation', 'label still says Password confirmation');\n    });\n\n    fillIn('.location-adminnewpasswordconfirmation', 'd');\n\n    triggerEvent('.location-adminnewpasswordconfirmation', 'blur');\n\n    andThen(function () {\n      assert.ok(find('.location-adminnewpasswordconfirmation').hasClass('error'), 'input error class applied');\n      assert.ok(find('input.location-adminnewpasswordconfirmation').prev('label').hasClass('error-description'), 'label error class applied');\n      assert.equal(find('input.location-adminnewpasswordconfirmation').prev('label').text().trim(), 'Passwords don\\'t match', 'label shows the error');\n    });\n\n    fillIn('.location-adminnewpasswordconfirmation', 'def');\n\n    triggerEvent('.location-adminnewpasswordconfirmation', 'blur');\n\n    andThen(function () {\n      assert.ok(!find('.location-adminnewpasswordconfirmation').hasClass('error'), 'input error class not applied yet');\n      assert.ok(!find('input.location-adminnewpasswordconfirmation').prev('label').hasClass('error-description'), 'label error class not applied yet');\n      assert.equal(find('input.location-adminnewpasswordconfirmation').prev('label').text().trim(), 'New password confirmation', 'label still says Password confirmation');\n    });\n  });\n\n  qunit.test('swapping out admin when switching location', function (assert) {\n    visit('/settings');\n    click('.js-location-admin .btn:contains(Edit)');\n\n    andThen(function () {\n      assert.equal(find('.location-adminname').val(), 'Larry Gadea');\n    });\n\n    // Switch to another location while admin form is open\n    click('ic-menu-trigger');\n    click('ic-menu-item:contains(New York)');\n\n    andThen(function () {\n      assert.equal(find('.location-adminname').val(), 'Ben Angel', 'admin swapped out correctly, with right isEditing state');\n      click('.js-location-admin .btn:contains(Save)'); // now form is closed, and redirect back to /settings/location\n    });\n\n    // Now switch back to San Diego to ensure Larry Gadea form is closed too\n    click('ic-menu-trigger');\n    click('ic-menu-item:contains(San Diego)');\n\n    andThen(function () {\n      assert.ok(!find('.js-location-admin input').length, 'form is closed');\n    });\n  });\n\n});","define('garaje/tests/acceptance/location-admin-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/location-admin-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/location-admin-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/location-i18n-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var server;\n\n  qunit.module('Acceptance: Settings > Location > i18n', {\n    beforeEach: function beforeEach() {\n      this.application = startApp['default']();\n\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var location = FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        current_version: '1.3.0',\n        installed_version: '1.3.0'\n      })['location'];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: [location] }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/configs/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: 1,\n              location_id: 1,\n              slideshows: [],\n              integrations: [],\n              custom_fields: []\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(this.application, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('can open and close i18n', function (assert) {\n    assert.expect(4);\n\n    server.put('/api/v1/locations/1', function (req) {\n      assert.ok(true, 'puts to location');\n      return [204, { 'Content-Type': 'application/json' }, ''];\n    });\n\n    visit('/settings');\n    click('.js-location-i18n a:contains(Edit)');\n    andThen(function () {\n      assert.ok(find('#_localeSelect').length, 'shows language select');\n    });\n    click('.js-location-i18n button:contains(Save)');\n    andThen(function () {\n      assert.ok(!find('#_localeSelect').length, 'hides box');\n    });\n    click('.js-location-i18n a:contains(Edit)');\n    click('.js-location-i18n .btn--cancel');\n    andThen(function () {\n      assert.ok(!find('#_localeSelect').length, 'hides box');\n    });\n  });\n\n});","define('garaje/tests/acceptance/location-i18n-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/location-i18n-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/location-i18n-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/location-logo-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Location logo', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        primary: true,\n        address: '461 2nd St, San Francisco, CA 94546',\n        config: {\n          id: 1\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.put('/api/v1/locations/' + locations[0].id, function (request) {\n          var body = JSON.parse(request.requestBody).location;\n          if (body.logo) {\n            assert.ok(body.logo, 'set a logo');\n          } else {\n            assert.ok(!body.logo, 'removed logo');\n          }\n          locations[0].logo = body.logo;\n          return [200, { 'Content-Type': 'application/json' }, { location: locations[0] }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/configs/1', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: 1,\n              location_id: locations[0].id,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('testing droppability, deleting a logo', function (assert) {\n    assert.expect(2);\n\n    locations[0].logo = {\n      url: 'assets/tmp/luxoball.png',\n      small_url: 'assets/tmp/luxoball-normal.png',\n      thumb_url: 'assets/tmp/luxoball-thumb.png'\n    };\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(find('.js-logo-upload').hasClass('droppable'), 'logo component is droppable');\n      click('.js-delete-logo');\n    });\n  });\n\n  qunit.test('logo used as admin avatar if no gravatar is found', function (assert) {\n    assert.expect(1);\n\n    locations[0].logo = {\n      url: 'assets/tmp/luxoball.png',\n      small_url: 'assets/tmp/luxoball-normal.png',\n      thumb_url: 'assets/tmp/luxoball-thumb.png'\n    };\n\n    visit('/settings');\n\n    andThen(function () {\n      var encodeURI = encodeURIComponent(locations[0].logo.thumb_url);\n      assert.ok(find('.js-location-admin img').attr('src').indexOf(encodeURI) > -1, 'admin avatar is company logo thumb');\n    });\n  });\n\n  qunit.test('logo used as receptionist avatar if receptionist is enabled and has no gravatar', function (assert) {\n    assert.expect(1);\n\n    locations[0].logo = {\n      url: 'assets/tmp/luxoball.png',\n      small_url: 'assets/tmp/luxoball-normal.png',\n      thumb_url: 'assets/tmp/luxoball-thumb.png'\n    };\n\n    locations[0].receptionist = {\n      name: 'Sally Marlow',\n      email: 'sally@example.com'\n    };\n\n    visit('/settings');\n\n    andThen(function () {\n      var encodeURI = encodeURIComponent(locations[0].logo.thumb_url);\n      assert.ok(find('.js-location-receptionist img').attr('src').indexOf(encodeURI) > -1, 'receptionist avatar is company logo thumb');\n    });\n  });\n\n  qunit.test('logo NOT used as receptionist avatar if receptionist is disabled', function (assert) {\n    assert.expect(1);\n\n    locations[0].logo = {\n      url: 'assets/tmp/luxoball.png',\n      small_url: 'assets/tmp/luxoball-normal.png',\n      thumb_url: 'assets/tmp/luxoball-thumb.png'\n    };\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist img').attr('src').indexOf(\"selfie.png\") > -1, 'receptionist avatar is selfie');\n    });\n  });\n\n  qunit.test('clicking on the welcome image link in the paragraph next to logo upload should take the user to the ipad route with welcome image expanded', function (assert) {\n    assert.expect(3);\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(find('.js-welcome-image-link').length, 'there is a location logo welcome image link');\n      click('.js-welcome-image-link');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-welcome-image .tokenized-form').length, 'welcome logo form is visible');\n      assert.ok(!find('.js-welcome-image .btn:contains(Enable)').length, 'enable button is hidden');\n    });\n  });\n\n  qunit.test('clicking on the slideshow link in the paragraph next to logo upload should take the user to the ipad route with slideshows expanded', function (assert) {\n    assert.expect(3);\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(find('.js-slideshows-link').length, 'there is a location logo slideshows link');\n      click('.js-slideshows-link');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-slideshows .tokenized-form').length, 'slideshow form is visible');\n      assert.ok(!find('.js-slideshows .btn:contains(Enable)').length, 'enable button is hidden');\n    });\n  });\n\n});","define('garaje/tests/acceptance/location-logo-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/location-logo-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/location-logo-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/location-receptionist-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/stub-confirm'], function (Ember, qunit, startApp, Pretender, FactoryGuy, stubConfirm) {\n\n  'use strict';\n\n  var App, server;\n\n  qunit.module('Acceptance: Settings > Location > Receptionist', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.register('GET', '/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['billing']\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n      });\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('no receptionist, enable, then bail', function (assert) {\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{\n          id: 1,\n          name: 'SF',\n          company_id: 1,\n          receptionist: null\n        }]\n      }];\n    });\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-enable-button').length, 'button is enable');\n      assert.ok(!find('.js-location-receptionist .tokenized-form').length, 'form is hidden');\n    });\n\n    click('.js-location-receptionist .js-enable-button');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-save-button').length, 'button is save');\n      assert.ok(find('.js-location-receptionist .tokenized-form').length, 'form is displayed');\n    });\n\n    fillIn('.js-location-receptionist .location-receptionistname', 'sally');\n    fillIn('.js-location-receptionist .location-receptionistemail', 'sally@example.com');\n\n    // click elsewhere to bail out\n    click('a:contains(Account)');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .btn:contains(Enable)').length, 'button is enable');\n      assert.ok(!find('.js-location-receptionist .tokenized-form').length, 'form is hidden');\n    });\n  });\n\n  qunit.test('edit receptionist, then bail', function (assert) {\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{\n          id: 1,\n          name: 'SF',\n          company_id: 1,\n          receptionist: {\n            name: 'Sally Marlow',\n            email: 'sally@example.com'\n          }\n        }]\n      }];\n    });\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-edit-button').length, 'button is edit');\n      assert.ok(!find('.js-location-receptionist .tokenized-form').length, 'form is hidden');\n      assert.equal(find('.js-location-receptionist .js-receptionist-name').text(), 'Sally Marlow', 'name is Sally Marlow');\n      assert.equal(find('.js-location-receptionist .js-receptionist-email').text(), 'sally@example.com', 'email is sally@example.com');\n    });\n\n    click('.js-location-receptionist .js-edit-button');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-save-button').length, 'button is save');\n      assert.ok(find('.js-location-receptionist .tokenized-form').length, 'form is displayed');\n    });\n\n    fillIn('.js-location-receptionist .location-receptionistname', 'Lisa Krohn');\n    fillIn('.js-location-receptionist .location-receptionistemail', 'sally@example.org');\n\n    // click elsewhere to bail out\n    click('a:contains(Account)');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-edit-button').length, 'button is edit');\n      assert.ok(!find('.js-location-receptionist .tokenized-form').length, 'form is hidden');\n      assert.equal(find('.js-location-receptionist .js-receptionist-name').text(), 'Sally Marlow', 'name is still Sally Marlow');\n      assert.equal(find('.js-location-receptionist .js-receptionist-email').text(), 'sally@example.com', 'email is still sally@example.com');\n    });\n  });\n\n  qunit.test('no receptionist, enable, then set some values', function (assert) {\n    assert.expect(12);\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{\n          id: 1,\n          name: 'SF',\n          company_id: 1,\n          receptionist: null\n        }]\n      }];\n    });\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-enable-button').length, 'button is enable');\n      assert.ok(!find('.js-location-receptionist .tokenized-form').length, 'form is hidden');\n    });\n\n    click('.js-location-receptionist .js-enable-button');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-save-button').length, 'button is save');\n      assert.ok(find('.js-location-receptionist .tokenized-form').length, 'form is displayed');\n    });\n\n    fillIn('.js-location-receptionist .location-receptionistname', 'sally');\n    fillIn('.js-location-receptionist .location-receptionistemail', 'sally@example.com');\n\n    andThen(function () {\n\n      //setup to look for geocode stuff - assert if geocode is run\n      var controller = App.__container__.lookup('controller:location');\n      var origGeocoder = controller.get('geocoder');\n      controller.set('geocoder', function (inputAddress) {\n        throw \"Geocoder should not be fired\";\n      });\n\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n\n        assert.equal(location.receptionist.name, 'sally', 'name was set');\n        assert.equal(location.receptionist.email, 'sally@example.com', 'email was set');\n\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      stubConfirm['default'](assert, false, function () {\n        click('.js-location-receptionist .btn--cancel');\n      });\n\n      //TODO: change the below to hit enter while in a form field instead of save - attempt #1 unsuccessful\n      //keyEvent('.js-location-receptionist .location-receptionistname', 'keypress', 13);\n\n      click('.js-location-receptionist .js-save-button');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('.js-location-receptionist .js-edit-button').length, 'button is edit');\n      assert.ok(!find('.js-location-receptionist .tokenized-form').length, 'form is hidden');\n      assert.equal(find('.js-location-receptionist h4').text(), 'sally', 'name is sally');\n      assert.equal(find('.js-location-receptionist p').text(), 'sally@example.com', 'email is sally@example.com');\n    });\n  });\n\n  qunit.test('edit receptionist, clear both name and email to delete', function (assert) {\n    assert.expect(12);\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{\n          id: 1,\n          name: 'SF',\n          receptionist: {\n            name: 'Sally Marlow',\n            email: 'sally@example.com'\n          },\n          company_id: 1\n        }]\n      }];\n    });\n\n    visit('/settings');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-edit-button').length, 'button is edit');\n      assert.ok(!find('.js-location-receptionist .tokenized-form').length, 'form is hidden');\n      assert.equal(find('.js-location-receptionist .js-receptionist-name').text(), 'Sally Marlow', 'name is Sally Marlow');\n      assert.equal(find('.js-location-receptionist .js-receptionist-email').text(), 'sally@example.com', 'email is sally@example.com');\n    });\n\n    click('.js-location-receptionist .js-edit-button');\n\n    andThen(function () {\n      assert.ok(find('.js-location-receptionist .js-save-button').length, 'button is save');\n      assert.ok(find('.js-location-receptionist .tokenized-form').length, 'form is displayed');\n    });\n\n    fillIn('.js-location-receptionist .location-receptionistname', '');\n    fillIn('.js-location-receptionist .location-receptionistemail', '');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n\n        assert.ok(!location.receptionist, 'receptionist is null');\n\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n      click('.js-location-receptionist .js-save-button');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('.js-location-receptionist .js-enable-button').length, 'button is enable');\n      assert.ok(!find('.js-location-receptionist .tokenized-form').length, 'form is hidden');\n      assert.equal(find('.js-location-receptionist .js-receptionist-name').text(), 'Receptionist', 'placeholder displayed');\n      assert.equal(find('.js-location-receptionist .js-receptionist-email').text(), 'Assign a receptionist.', 'placeholder displayed');\n    });\n  });\n\n});","define('garaje/tests/acceptance/location-receptionist-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/location-receptionist-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/location-receptionist-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/location-switcher-feature-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/fixtures/badge'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Location Switcher Feature', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      var badge = FactoryGuy['default'].build('badge', { custom_field1: 'none', custom_field2: 'none' })['badge'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'NY',\n        company: {\n          id: company.id\n        }\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        primary: true,\n        badge: {\n          id: badge.id\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/locations', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/badges/' + badge.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { badge: badge }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('users with access to a location switcher should see the location switcher', function (assert) {\n    var cssDiv;\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['location_switcher']\n        }\n      }];\n    });\n\n    visit('/settings/location');\n\n    andThen(function () {\n      assert.ok(find('.js-mainHeader-location-trigger').length);\n    });\n  });\n\n  qunit.test('users without access to a location switcher should not see the location switcher', function (assert) {\n    var cssDiv;\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: []\n        }\n      }];\n    });\n\n    visit('/settings/location');\n\n    andThen(function () {\n      assert.ok(!find('.js-mainHeader-location-trigger').length);\n    });\n  });\n\n});","define('garaje/tests/acceptance/location-switcher-feature-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/location-switcher-feature-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/location-switcher-feature-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/location-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'garaje/tests/helpers/stub-geocoder', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/parse-post-data'], function (Ember, qunit, startApp, stubConfirm, stubGeocoder, Pretender, FactoryGuy, parsePostData) {\n\n  'use strict';\n\n  var App = undefined,\n      server = undefined,\n      locations = undefined,\n      company = undefined;\n\n  qunit.module('Acceptance: Location', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n\n      company = FactoryGuy['default'].build('company', {\n        name: 'Acme',\n        onboarding_status: 'complete'\n      })['company'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'San Diego',\n        company: company\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'NY',\n        company: company,\n        disabled: true,\n        address: '767 Fifth Avenue, New York, NY 10153',\n        config: {\n          id: 1\n        },\n        company_name_override: 'WB'\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'SF',\n        company: company,\n        primary: true,\n        address: '461 2nd St, San Francisco, CA 94546',\n        api_key: 'current-api-key'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.put('/api/v1/locations/' + locations[2].id, function (request) {\n          var body = JSON.parse(request.requestBody).location;\n          assert.equal(body.name, 'Kuala Lumpur', 'updated location name');\n          locations[2].name = body.name;\n          return [200, { 'Content-Type': 'application/json' }, { location: locations[2] }];\n        });\n        this.post('/api/v1/locations/' + locations[2].id + '/generate_key', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { api_key: 'new-api-key' }];\n        });\n        this.put('/api/v1/companies/' + company.id, function (request) {\n          var body = JSON.parse(request.requestBody).company;\n          assert.equal(body.name, 'Envoy', 'updated company name');\n          company.name = body.name;\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/configs/1', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: 1,\n              location_id: 1,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n        this.get('/api/v1/configs/:id', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: request.params.id,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('successful save location info triggers success flash message', function (assert) {\n    assert.expect(11);\n\n    visit('/settings');\n\n    fillIn('.company-name', 'Envoy');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/' + locations[2].id, function (request) {\n        var body = JSON.parse(request.requestBody).location;\n        assert.equal(body.latitude, 37.7834708, 'latitude passed in');\n        assert.equal(body.longitude, -122.3941284, 'longitude passed in');\n        assert.equal(body.address, '461 2nd St, San Francisco, CA 94546', 'original address value passed in');\n        assert.equal(body.timezone, 'UTC', 'timezone passed in');\n        assert.equal(body.address_line_1, '461 2nd Street', 'address passed in');\n        assert.equal(body.city, 'San Francisco', 'city passed in');\n        assert.equal(body.zip, '94107', 'zip code passed in');\n        assert.equal(body.state, 'CA', 'state passed in');\n        assert.equal(body.country, 'US', 'country passed in');\n\n        return [200, { 'Content-Type': 'application/json' }, { location: locations[2] }];\n      });\n\n      stubGeocoder['default'](true, {\n        latitude: 37.7834708,\n        longitude: -122.3941284,\n        address: '461 2nd St, San Francisco, CA, 94107, USA',\n        addressComponents: [{\n          \"long_name\": \"461\",\n          \"short_name\": \"461\",\n          \"types\": [\"street_number\"]\n        }, {\n          \"long_name\": \"2nd Street\",\n          \"short_name\": \"2nd St\",\n          \"types\": [\"route\"]\n        }, {\n          \"long_name\": \"South Beach\",\n          \"short_name\": \"South Beach\",\n          \"types\": [\"neighborhood\", \"political\"]\n        }, {\n          \"long_name\": \"San Francisco\",\n          \"short_name\": \"SF\",\n          \"types\": [\"locality\", \"political\"]\n        }, {\n          \"long_name\": \"San Francisco County\",\n          \"short_name\": \"San Francisco County\",\n          \"types\": [\"administrative_area_level_2\", \"political\"]\n        }, {\n          \"long_name\": \"California\",\n          \"short_name\": \"CA\",\n          \"types\": [\"administrative_area_level_1\", \"political\"]\n        }, {\n          \"long_name\": \"United States\",\n          \"short_name\": \"US\",\n          \"types\": [\"country\", \"political\"]\n        }, {\n          \"long_name\": \"94107\",\n          \"short_name\": \"94107\",\n          \"types\": [\"postal_code\"]\n        }]\n      });\n\n      click('.js-location-info-save');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'), 'success displayed');\n    });\n  });\n\n  qunit.test('flawed geocoder request should throw error and flash message should not be shown ', function (assert) {\n    assert.expect(1);\n\n    visit('/settings');\n\n    fillIn('.company-name', 'Envoy');\n    fillIn('.location-address', 'messed-up/stuff');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/' + locations[2].id, function (request) {\n        return [200, { 'Content-Type': 'application/json' }, { location: locations[2] }];\n      });\n\n      stubGeocoder['default'](false);\n\n      click('.js-location-info-save');\n    });\n\n    andThen(function () {\n      assert.ok(!find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('location address empty should display a validation error', function (assert) {\n    assert.expect(1);\n\n    visit('/settings');\n\n    fillIn('.company-name', 'Envoy');\n    fillIn('.location-address', '');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/' + locations[2].id, function (request) {\n        return [200, { 'Content-Type': 'application/json' }, { location: locations[2] }];\n      });\n\n      click('.js-location-info-save');\n    });\n\n    andThen(function () {\n      assert.equal(find('.addressLabel').text().trim(), 'Enter an address', 'validation error displayed');\n    });\n  });\n\n  qunit.test('clicking on location switcher', function (assert) {\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n\n    var menuItem;\n\n    andThen(function () {\n      menuItem = find('ic-menu-item:contains(SF)');\n      assert.ok(menuItem.hasClass('active'));\n      click(menuItem);\n    });\n\n    andThen(function () {\n      // &nbsp; is charcode 160 vs a regular space which is charcode 30\n      assert.equal(find('.js-mainHeader-location-trigger').text().replace(/\\s+/g, ' '), 'Acme SF ▾');\n\n      // form\n      assert.equal(find('.company-name').val(), 'Acme');\n      assert.equal(find('.location-name').val(), 'SF');\n      assert.equal(find('.location-address').val(), '461 2nd St, San Francisco, CA 94546');\n    });\n\n    click('ic-menu-item:contains(WB NY)');\n\n    andThen(function () {\n      assert.ok(find('ic-menu-item:contains(WB NY)').hasClass('active'));\n\n      // sidebar\n      assert.equal(find('.js-mainHeader-location-trigger').text().replace(/\\s+/g, ' '), 'WB NY ▾');\n\n      // form\n      assert.equal(find('.company-name').val(), 'WB');\n      assert.equal(find('.location-name').val(), 'NY');\n      assert.equal(find('.location-address').val(), '767 Fifth Avenue, New York, NY 10153');\n    });\n  });\n\n  qunit.test('ordering of location switcher', function (assert) {\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      var menuItems = find('ic-menu-item');\n      assert.equal(Ember['default'].$(menuItems[0]).text().trim(), 'Acme SF'); // primary\n      assert.equal(Ember['default'].$(menuItems[1]).text().trim(), 'Acme San Diego'); // then alphabetical\n      assert.equal(Ember['default'].$(menuItems[2]).text().trim(), 'WB NY');\n    });\n  });\n\n  qunit.test('location switcher item states', function (assert) {\n    visit('/');\n    click('a:contains(Settings)');\n    click('ic-menu-trigger');\n\n    andThen(function () {\n      // primary\n      assert.ok(find('ic-menu-item:contains(SF)').hasClass('primary'));\n      assert.ok(!find('ic-menu-item:contains(WB NY)').hasClass('primary'));\n      assert.ok(!find('ic-menu-item:contains(San Diego)').hasClass('primary'));\n\n      // disabled\n      assert.ok(!find('ic-menu-item:contains(SF)').hasClass('disabled'));\n      assert.ok(find('ic-menu-item:contains(WB NY)').hasClass('disabled'));\n      assert.ok(!find('ic-menu-item:contains(San Diego)').hasClass('disabled'));\n    });\n  });\n\n  qunit.test('localStorage current_location points to a location which we can see', function (assert) {\n    assert.expect(2);\n\n    localStorage.setItem('current_location', locations[0].id); // san diego\n\n    visit('/');\n\n    andThen(function () {\n      assert.equal(find('ic-menu-trigger').text().replace(/\\s+/g, ' ').trim(), 'Acme San Diego ▾ ▾ ▾', 'menu trigger is San Diego');\n      assert.equal(find('ic-menu-item.active').text().trim(), 'Acme San Diego', 'active menu item is San Diego');\n    });\n  });\n\n  qunit.test('localStorage current_location points to a location we dont know of', function (assert) {\n    assert.expect(2);\n\n    localStorage.setItem('current_location', 99999);\n\n    visit('/');\n\n    andThen(function () {\n      assert.equal(find('ic-menu-trigger').text().replace(/\\s+/g, ' ').trim(), 'Acme SF ▾ ▾ ▾', 'menu trigger is SF (the primary location)');\n      assert.equal(find('ic-menu-item.active').text().trim(), 'Acme SF', 'active menu item is SF');\n    });\n  });\n\n  qunit.test('address field should update when switching between locations after an edit', function (assert) {\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      assert.equal(find('.location-address').val(), '461 2nd St, San Francisco, CA 94546', 'address is SF');\n    });\n    fillIn('.location-address', '101 Market St');\n\n    // switch to another location\n    click('ic-menu-trigger');\n    click('ic-menu-item:contains(WB NY)');\n\n    andThen(function () {\n      assert.equal(find('.location-address').val(), '767 Fifth Avenue, New York, NY 10153', 'address is NY');\n    });\n\n    // click to another route\n    click('a:contains(iPad)');\n    // then back\n    click('a:contains(Account)');\n\n    andThen(function () {\n      assert.equal(find('.location-address').val(), '767 Fifth Avenue, New York, NY 10153', 'address is still NY');\n    });\n  });\n\n  qunit.test('regenerating API key, confirming', function (assert) {\n    assert.expect(3);\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      assert.equal(find('.location-apikey').val(), 'current-api-key', 'current api key');\n      stubConfirm['default'](assert, true, function () {\n        click('.js-location-apikey a:contains(Regenerate)');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.location-apikey').val(), 'new-api-key', 'new api key');\n    });\n  });\n\n  qunit.test('regenerating API key, but bailed out', function (assert) {\n    assert.expect(3);\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      assert.equal(find('.location-apikey').val(), 'current-api-key', 'current api key');\n      stubConfirm['default'](assert, false, function () {\n        click('.js-location-apikey a:contains(Regenerate)');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.location-apikey').val(), 'current-api-key', 'api key not updated');\n    });\n  });\n\n  qunit.test('export csv button', function (assert) {\n    assert.expect(1);\n\n    visit('/settings');\n\n    andThen(function () {\n      var host = window.location.host;\n      assert.equal(find('.js-export-data .btn').prop('href'), 'http://' + host + '/entries?location_id=' + locations[2].id, 'button is linked to export csv');\n    });\n  });\n\n  qunit.test('company name override', function (assert) {\n    assert.expect(13);\n\n    visit('/settings');\n    click('ic-menu-item:contains(WB NY)');\n\n    andThen(function () {\n      assert.equal(find('.company-name').val(), 'WB', 'company shows the main company override name');\n    });\n\n    fillIn('.company-name', '');\n\n    andThen(function () {\n      assert.equal(find('ic-menu-item.active').text().trim(), 'Acme NY', 'menu item says NY');\n      assert.equal(find('.company-name').prop('placeholder'), 'Acme', 'placeholder shows the main company name');\n\n      server.register('PUT', '/api/v1/locations/' + locations[1].id, function (request) {\n        var body = JSON.parse(request.requestBody).location;\n        assert.equal(body.company_name_override, null, 'company name override is nullified because its blank');\n\n        locations[1].company_name_override = null;\n\n        return [200, { 'Content-Type': 'application/json' }, { location: locations[1] }];\n      });\n\n      stubGeocoder['default'](true, {\n        latitude: 37.7834708,\n        longitude: -122.3941284,\n        address: '461 2nd St, San Francisco, CA, 94107, USA',\n        addressComponents: [{\n          \"long_name\": \"461\",\n          \"short_name\": \"461\",\n          \"types\": [\"street_number\"]\n        }, {\n          \"long_name\": \"2nd Street\",\n          \"short_name\": \"2nd St\",\n          \"types\": [\"route\"]\n        }, {\n          \"long_name\": \"South Beach\",\n          \"short_name\": \"South Beach\",\n          \"types\": [\"neighborhood\", \"political\"]\n        }, {\n          \"long_name\": \"San Francisco\",\n          \"short_name\": \"SF\",\n          \"types\": [\"locality\", \"political\"]\n        }, {\n          \"long_name\": \"San Francisco County\",\n          \"short_name\": \"San Francisco County\",\n          \"types\": [\"administrative_area_level_2\", \"political\"]\n        }, {\n          \"long_name\": \"California\",\n          \"short_name\": \"CA\",\n          \"types\": [\"administrative_area_level_1\", \"political\"]\n        }, {\n          \"long_name\": \"United States\",\n          \"short_name\": \"US\",\n          \"types\": [\"country\", \"political\"]\n        }, {\n          \"long_name\": \"94107\",\n          \"short_name\": \"94107\",\n          \"types\": [\"postal_code\"]\n        }]\n      });\n\n      server.register('PUT', '/api/v1/companies/' + company.id, function (request) {\n        var body = JSON.parse(request.requestBody).company;\n        assert.equal(body.name, 'Acme', 'send in original company name');\n        return [200, { 'Content-Type': 'application/json' }, { company: company }];\n      });\n\n      click('.js-location-info-save');\n    });\n\n    andThen(function () {\n      assert.equal(find('.company-name').val(), '', 'company name is empty because we just deleted it');\n    });\n\n    fillIn('.company-name', 'Netflix');\n\n    andThen(function () {\n      assert.equal(find('ic-menu-item.active').text().trim(), 'Netflix NY', 'menu item says Netflix NY');\n\n      server.register('PUT', '/api/v1/locations/' + locations[1].id, function (request) {\n        var body = JSON.parse(request.requestBody).location;\n        assert.equal(body.company_name_override, 'Netflix', 'company name override is set');\n\n        locations[1].company_name_override = 'Netflix';\n\n        return [200, { 'Content-Type': 'application/json' }, { location: locations[1] }];\n      });\n\n      click('.js-location-info-save');\n    });\n\n    fillIn('.company-name', 'Acme ');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/' + locations[1].id, function (request) {\n        var body = JSON.parse(request.requestBody).location;\n        assert.equal(body.company_name_override, null, 'company name override nullified because its the same value as the company name');\n\n        locations[1].company_name_override = null;\n\n        return [200, { 'Content-Type': 'application/json' }, { location: locations[1] }];\n      });\n\n      click('.js-location-info-save');\n    });\n\n    andThen(function () {\n      assert.equal(find('.company-name').val(), '', 'company name is empty because its the same as the main one');\n      assert.equal(find('ic-menu-item.active').text().trim(), 'Acme NY', 'menu item says NY');\n    });\n  });\n\n});","define('garaje/tests/acceptance/location-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/location-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/location-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/login-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/ember-simple-auth'], function (Ember, qunit, startApp, Pretender, FactoryGuy, ember_simple_auth) {\n\n  'use strict';\n\n  var application, server;\n\n  qunit.module('Acceptance: Login', {\n    beforeEach: function beforeEach() {\n      application = startApp['default']();\n      server = new Pretender['default'](function () {\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              config_id: 1,\n              company_id: 1\n            }]\n          }];\n        });\n\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Jacob Inc',\n              email: 'foo@example.com',\n              slack_connected: false,\n              slack_team_name: null,\n              hipchat_connected: false,\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, { admin: { id: 1, email: 'foo@example.com' } }];\n        });\n\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, { subscription: {} }];\n        });\n\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, { invites: [] }];\n        });\n\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, { entries: [] }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n\n    afterEach: function afterEach() {\n      Ember['default'].run(application, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('unsuccessful login', function (assert) {\n    assert.expect(2);\n\n    ember_simple_auth.invalidateSession(application);\n\n    visit('/');\n\n    fillIn('.js-email', 'foo@example.com');\n    fillIn('.js-password', 'wrongpass');\n\n    andThen(function () {\n      server.register('POST', '/oauth/token', function () {\n        return [401, { 'Content-Type': 'text/plain' }, 'Not Authorized'];\n      });\n\n      // override the default test adapter exception handler\n      // which shits an assertion even when we don't need it\n      Ember['default'].Test.adapter.exception = Ember['default'].K;\n\n      click('.js-login');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-password').val(), '', 'password is erased');\n      var messageBar = find('.messageBar.error');\n      assert.equal(messageBar.find('p').text(), 'Email and password do not match', 'flash message shows');\n    });\n  });\n\n  qunit.test('successful login by going direct to the login page', function (assert) {\n    assert.expect(1);\n\n    ember_simple_auth.invalidateSession(application);\n\n    visit('/login');\n\n    fillIn('.js-email', 'foo@example.com');\n    fillIn('.js-password', 'goodpass');\n\n    andThen(function () {\n      server.register('POST', '/oauth/token', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          access_token: 'verygoodtoken',\n          token_type: 'Bearer',\n          expires_in: null,\n          refresh_token: null\n        }];\n      });\n\n      click('.js-login');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.dashboard.index', 'it goes to the dashboard');\n    });\n  });\n\n  qunit.test('successful login by going to a protected url first', function (assert) {\n    assert.expect(1);\n\n    ember_simple_auth.invalidateSession(application);\n\n    visit('/settings/account');\n\n    fillIn('.js-email', 'foo@example.com');\n    fillIn('.js-password', 'goodpass');\n\n    andThen(function () {\n      server.register('POST', '/oauth/token', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          access_token: 'verygoodtoken',\n          token_type: 'Bearer',\n          expires_in: null,\n          refresh_token: null\n        }];\n      });\n\n      click('.js-login');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.location.index', 'it goes back where it wanted to go');\n    });\n  });\n\n  qunit.test('already logged in', function (assert) {\n    assert.expect(1);\n\n    visit('/login');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.dashboard.index', 'it goes to the dashboard');\n    });\n  });\n\n});","define('garaje/tests/acceptance/login-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/login-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/login-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/new-location-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'garaje/tests/helpers/stub-geocoder', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/fill-in-with-key-press', 'garaje/tests/helpers/parse-post-data'], function (Ember, qunit, startApp, stubConfirm, stubGeocoder, Pretender, FactoryGuy, fillInWithKeyPress, parsePostData) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: New Location', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme',\n        onboarding_status: 'complete'\n      })['company'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'San Diego',\n        company: {\n          id: company.id\n        },\n        disabled: true\n      })['location'], FactoryGuy['default'].build('location', {\n        id: 2,\n        name: 'NY',\n        company: {\n          id: company.id\n        },\n        disabled: true\n      })['location'], FactoryGuy['default'].build('location', {\n        id: 3,\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        primary: true\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              quantity: 1\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/standard', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n        this.get('/api/v1/entries/calendar', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            calendar: []\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('creating a new location', function (assert) {\n    assert.expect(32);\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      // form\n      assert.equal(find('.company-name').val(), '', 'company name is blanked because its initially the same');\n      assert.ok(!find('.company-name').prop('disabled'), 'company field is disabled');\n      assert.equal(find('.location-name').val(), '', 'empty location name');\n      assert.equal(find('.location-address').val(), '', 'empty address');\n      assert.ok(!find('.js-location-info-save').length, 'Save button should be hidden on new location');\n\n      // switcher\n      assert.equal(find('.js-mainHeader-location ic-menu-item').length, 4, 'only displays non-new locations (+ add location)');\n\n      // plan overview\n      assert.equal(find('.js-line-item-location').length, 0, 'no plan overview during trial');\n    });\n\n    stubGeocoder['default'](true, {\n      latitude: 101,\n      longitude: 30,\n      address: '1 Main Street, Chicago, IL',\n      addressComponents: [{\n        \"long_name\": \"Chicago\",\n        \"short_name\": \"Chgo\",\n        \"types\": [\"locality\", \"political\"]\n      }, {\n        \"long_name\": \"Cook County\",\n        \"short_name\": \"Cook County\",\n        \"types\": [\"administrative_area_level_2\", \"political\"]\n      }, {\n        \"long_name\": \"Illinois\",\n        \"short_name\": \"IL\",\n        \"types\": [\"administrative_area_level_1\", \"political\"]\n      }, {\n        \"long_name\": \"United States\",\n        \"short_name\": \"US\",\n        \"types\": [\"country\", \"political\"]\n      }]\n    }, function (options) {\n      assert.equal(options.address, 'Downtown Chicago', 'geocoder was called with the right data');\n    });\n\n    fillIn('.company-name', 'Disney');\n    fillIn('.location-name', 'Chicago');\n    fillIn('.location-address', 'Downtown Chicago');\n    fillIn('.location-adminname', 'Chicago Admin');\n    fillIn('.location-adminemail', 'chicago@example.com');\n    fillIn('.location-adminpassword', 'chicago123');\n    fillIn('.location-copyfrom', 3);\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        var subscription = parsePostData['default'](request.requestBody).subscription;\n        assert.equal(subscription.quantity, 2, 'quantity is increased just in time');\n        assert.ok(!('plan' in subscription), 'plan is not passed in');\n        assert.ok(!('period' in subscription), 'period is not passed in');\n        subscription.features = ['location_switcher'];\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      server.register('POST', '/api/v1/locations', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n        assert.equal(location.name, 'Chicago', 'sent in right name');\n        assert.equal(location.address, 'Downtown Chicago', 'sent in input address');\n        assert.equal(location.latitude, 101, 'sent in latitude');\n        assert.equal(location.longitude, 30, 'sent in longitude');\n        assert.ok(!location.disabled, 'enabled by default');\n        assert.equal(location.master_location_id, '3', 'sent in master_location_id');\n        assert.ok(location.timezone, 'timezone is not null');\n        var admin = location.new_admin;\n        assert.equal(admin.name, 'Chicago Admin', 'sent in admin name');\n        assert.equal(admin.email, 'chicago@example.com', 'sent in admin email');\n        assert.equal(admin.password, 'chicago123', 'sent in admin password');\n        assert.equal(location.city, 'Chicago', 'city passed in');\n        assert.equal(location.state, 'IL', 'state passed in');\n        assert.equal(location.country, 'US', 'country passed in');\n        assert.equal(location.company_name_override, 'Disney', 'company name override passed in');\n\n        location.id = 4;\n        admin.id = 4;\n        location.admin_id = admin.id;\n\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      server.register('GET', '/api/v1/admins/4', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          admin: {\n            id: 4,\n            name: 'Chicago Admin',\n            email: 'chicago@example.com'\n          }\n        }];\n      });\n\n      click('.btn:contains(Add Location)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-mainHeader-location ic-menu-item').length, 5, 'now includes the new location (+ add new location)');\n\n      assert.equal('protected.settings.location.index', currentPath(), 'redirected to the location page');\n      assert.equal(find('.js-mainHeader-location-trigger').text().replace(/\\s+/g, ' '), 'Disney Chicago ▾');\n\n      // form\n      assert.equal(find('.company-name').val(), 'Disney', 'company name');\n      assert.equal(find('.location-name').val(), 'Chicago', 'location name');\n      assert.equal(find('.location-address').val(), 'Downtown Chicago', 'address');\n    });\n  });\n\n  qunit.test('creating a new location, but backend died', function (assert) {\n    assert.expect(6);\n\n    var origHandler = Ember['default'].Test.adapter.exception;\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    stubGeocoder['default'](true, {\n      latitude: 101,\n      longitude: 30,\n      address: '1 Main Street, Chicago, IL',\n      addressComponents: [{\n        \"long_name\": \"Chicago\",\n        \"short_name\": \"Chgo\",\n        \"types\": [\"locality\", \"political\"]\n      }, {\n        \"long_name\": \"Cook County\",\n        \"short_name\": \"Cook County\",\n        \"types\": [\"administrative_area_level_2\", \"political\"]\n      }, {\n        \"long_name\": \"Illinois\",\n        \"short_name\": \"IL\",\n        \"types\": [\"administrative_area_level_1\", \"political\"]\n      }, {\n        \"long_name\": \"United States\",\n        \"short_name\": \"US\",\n        \"types\": [\"country\", \"political\"]\n      }]\n    });\n\n    fillIn('.location-name', 'Chicago');\n    fillIn('.location-address', 'Downtown Chicago');\n    fillIn('.location-adminname', 'Chicago Admin');\n    fillIn('.location-adminemail', 'chicago@example.com');\n    fillIn('.location-adminpassword', 'chicago123');\n    fillIn('.location-copyfrom', 3);\n\n    triggerEvent('.location-address', 'blur');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        var subscription = parsePostData['default'](request.requestBody).subscription;\n        assert.equal(subscription.quantity, 2, 'quantity is increased just in time');\n        assert.ok(!('plan' in subscription), 'plan is not passed in');\n        assert.ok(!('period' in subscription), 'period is not passed in');\n        subscription.features = ['location_switcher'];\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      server.register('POST', '/api/v1/locations', function (request) {\n        return [400, { 'Content-Type': 'application/json' }, { error: 'Backend died' }];\n      });\n\n      // override the default test adapter exception handler\n      // which shits an assertion even when we don't need it\n      Ember['default'].Test.adapter.exception = Ember['default'].K;\n\n      click('.btn:contains(Add Location)');\n    });\n\n    andThen(function () {\n      var messageBar = find('.messageBar.error').first();\n      assert.equal(messageBar.find('p').text(), 'Error: Backend died');\n\n      assert.equal(find('.js-mainHeader-location ic-menu-item').length, 4, 'still at 4 locations');\n      assert.equal('protected.settings.new-location', currentPath(), 'still on new-location page');\n\n      Ember['default'].Test.adapter.exception = origHandler;\n    });\n  });\n\n  qunit.test('creating a new location, but address is invalid', function (assert) {\n    assert.expect(2);\n\n    var origHandler = Ember['default'].Test.adapter.exception;\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    stubGeocoder['default'](false, 'Enter an address');\n\n    andThen(function () {\n      server.register('POST', '/api/v1/locations', function (request) {\n        assert.ok(false, 'not called');\n      });\n      click('.btn:contains(Add Location)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.addressLabel').text().trim(), \"Enter an address\", 'validation error displayed');\n      assert.ok(find('.messageBar').hasClass('hideFlash'), 'no messageBar, just the validation error');\n    });\n  });\n\n  qunit.test('creating a new location, but bailing out, should continue where you left off', function (assert) {\n    assert.expect(34);\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      // form\n      assert.equal(find('.company-name').val(), '', 'company name is blanked');\n      assert.ok(!find('.company-name').prop('disabled'), 'company field is enabled');\n      assert.equal(find('.location-name').val(), '', 'empty location name');\n      assert.equal(find('.location-address').val(), '', 'empty address');\n\n      // switcher\n      assert.equal(find('.js-mainHeader-location ic-menu-item').length, 4, 'only displays non-new locations (+ add location)');\n    });\n\n    fillIn('.location-name', 'Chicago');\n    fillIn('.location-address', 'Downtown Chicago');\n    fillIn('.location-adminname', 'Chicago Admin');\n    fillIn('.location-adminemail', 'chicago@example.com');\n    fillIn('.location-adminpassword', 'chicago123');\n    fillIn('.location-copyfrom', 3);\n\n    // bail out to Location\n    click('a:contains(Account)');\n\n    // then back to new location\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      // form\n      assert.equal(find('.location-name').val(), 'Chicago', 'location name is still intact');\n      assert.equal(find('.location-adminname').val(), 'Chicago Admin', 'Admin name is intact');\n      assert.equal(find('.location-adminemail').val(), 'chicago@example.com', 'Admin email is intact');\n      assert.equal(find('.location-copyfrom').val(), 3, 'Copy from still intact');\n\n      // switcher\n      assert.equal(find('.js-mainHeader-location ic-menu-item').length, 4, 'only displays non-new locations (+ add location)');\n    });\n\n    andThen(function () {\n      stubGeocoder['default'](true, {\n        latitude: 101,\n        longitude: 30,\n        address: '1 Main Street, Chicago, IL',\n        addressComponents: [{\n          \"long_name\": \"Chicago\",\n          \"short_name\": \"Chgo\",\n          \"types\": [\"locality\", \"political\"]\n        }, {\n          \"long_name\": \"Cook County\",\n          \"short_name\": \"Cook County\",\n          \"types\": [\"administrative_area_level_2\", \"political\"]\n        }, {\n          \"long_name\": \"Illinois\",\n          \"short_name\": \"IL\",\n          \"types\": [\"administrative_area_level_1\", \"political\"]\n        }, {\n          \"long_name\": \"United States\",\n          \"short_name\": \"US\",\n          \"types\": [\"country\", \"political\"]\n        }]\n      }, function (options) {\n        assert.equal(options.address, 'Downtown Chicago', 'geocoder was called with the right data');\n      });\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        var subscription = parsePostData['default'](request.requestBody).subscription;\n\n        assert.equal(subscription.quantity, 2, 'quantity is increased just in time');\n        assert.ok(!('plan' in subscription), 'plan is not passed in');\n        assert.ok(!('period' in subscription), 'period is not passed in');\n        subscription.features = ['location_switcher'];\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      server.register('POST', '/api/v1/locations', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n        assert.equal(location.name, 'Chicago', 'sent in right name');\n        assert.equal(location.address, 'Downtown Chicago', 'sent in input address');\n        assert.equal(location.latitude, 101, 'sent in latitude');\n        assert.equal(location.longitude, 30, 'sent in longitude');\n        assert.ok(!location.disabled, 'enabled by default');\n        assert.equal(location.master_location_id, '3', 'sent in master_location_id');\n        assert.ok(location.timezone, 'timezone is not null');\n        var admin = location.new_admin;\n        assert.equal(admin.name, 'Chicago Admin', 'sent in admin name');\n        assert.equal(admin.email, 'chicago@example.com', 'sent in admin email');\n        assert.equal(admin.password, 'chicago123', 'sent in admin password');\n        assert.equal(location.city, 'Chicago', 'city passed in');\n        assert.equal(location.state, 'IL', 'state passed in');\n        assert.equal(location.country, 'US', 'country passed in');\n\n        location.id = 4;\n        admin.id = 4;\n        location.admin_id = admin.id;\n\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      server.register('GET', '/api/v1/admins/4', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          admin: {\n            id: 4,\n            name: 'Chicago Admin',\n            email: 'chicago@example.com'\n          }\n        }];\n      });\n\n      fillIn('.location-address', 'Downtown Chicago');\n\n      click('.btn:contains(Add Location)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.equal(find('.js-mainHeader-location ic-menu-item').length, 5, 'now includes the new location (+ add new location)');\n\n      assert.equal('protected.settings.location.index', currentPath(), 'redirected to the location page');\n      assert.equal(find('.js-mainHeader-location-trigger').text().replace(/\\s+/g, ' '), 'Acme Chicago ▾');\n\n      // form\n      assert.equal(find('.company-name').val(), '', 'company name is blanked because its the same');\n      assert.equal(find('.location-name').val(), 'Chicago', 'location name');\n      assert.equal(find('.location-address').val(), 'Downtown Chicago', 'address');\n    });\n  });\n\n  qunit.test('creating a new location while subscribed should only show active locations and the new location in the plan overview', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          plan: 'premium',\n          period: 'yearly',\n          quantity: 1\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      // plan overview\n      assert.equal(find('.js-line-item-location').length, 2, 'displays active location + this new location');\n    });\n  });\n\n  qunit.test('validations', function (assert) {\n    assert.expect(10);\n\n    stubGeocoder['default'](true, {\n      latitude: 101,\n      longitude: 30,\n      address: '1 Main Street, Chicago, IL',\n      addressComponents: [{\n        \"long_name\": \"Chicago\",\n        \"short_name\": \"Chgo\",\n        \"types\": [\"locality\", \"political\"]\n      }, {\n        \"long_name\": \"Cook County\",\n        \"short_name\": \"Cook County\",\n        \"types\": [\"administrative_area_level_2\", \"political\"]\n      }, {\n        \"long_name\": \"Illinois\",\n        \"short_name\": \"IL\",\n        \"types\": [\"administrative_area_level_1\", \"political\"]\n      }, {\n        \"long_name\": \"United States\",\n        \"short_name\": \"US\",\n        \"types\": [\"country\", \"political\"]\n      }]\n    }, function (options) {\n      assert.equal(options.address, '1 Main Street, Chicago, IL', 'geocoding the input address');\n    });\n\n    visit('/');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    fillIn('.location-address', '1 Main Street, Chicago, IL');\n\n    click('.btn:contains(Add Location)');\n\n    var messageBar, locationName, address, fullName, email, password;\n\n    andThen(function () {\n      locationName = find('.location-name');\n      assert.equal(locationName.prev('label').text().trim(), 'This is a Required Field', 'location name label shows can\\'t be blank');\n\n      fillIn('.location-name', 'ChiTown');\n      click('.btn:contains(Add Location)');\n    });\n\n    andThen(function () {\n      messageBar = find('.messageBar.error').first();\n      assert.equal(messageBar.find('p').text(), 'Error: Some fields are incomplete', 'displays a validation error message');\n\n      fullName = find('.location-adminname');\n      assert.equal(fullName.prev('label').text().trim(), 'Full Name can\\'t be blank', 'full name label shows can\\'t be blank');\n\n      email = find('.location-adminemail');\n      assert.equal(email.prev('label').text().trim(), 'Email Address can\\'t be blank', 'email label shows can\\'t be blank');\n\n      password = find('.location-adminpassword');\n      assert.equal(password.prev('label').text().trim(), 'Password can\\'t be blank', 'password name label shows can\\'t be blank');\n    });\n\n    fillIn('.location-adminemail', 'foo');\n\n    andThen(function () {\n      email = find('.location-adminemail');\n      assert.equal(email.prev('label').text().trim(), 'Email Address is invalid', 'email label shows invalid');\n    });\n\n    fillIn('.location-adminemail', 'foo@gmail');\n\n    andThen(function () {\n      email = find('.location-adminemail');\n      assert.equal(email.prev('label').text().trim(), 'Did you mean foo@gmail.com?', 'email label shows email suggestion');\n    });\n\n    fillIn('.location-adminpassword', 'secret');\n\n    andThen(function () {\n      password = find('.location-adminpassword');\n      assert.equal(password.prev('label').text().trim(), 'Password is too short (minimum is 8 characters)', 'password name label shows too short');\n    });\n  });\n\n  qunit.test('creating a new location, while on standard', function (assert) {\n    assert.expect(21);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          plan: 'standard',\n          period: 'yearly',\n          quantity: 1\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      var existingLocation = find('.js-line-item-location:eq(0)');\n      assert.equal(existingLocation.find('.js-line-item-price').text().trim(), '$2,988.00', 'displays premium price');\n      assert.ok(existingLocation.hasClass('priceUpdated'), 'its highlighted');\n      var newLocation = find('.js-line-item-location:eq(1)');\n      assert.equal(newLocation.find('.js-line-item-price').text().trim(), '$2,988.00', 'displays premium price');\n      assert.ok(newLocation.hasClass('priceUpdated'), 'its highlighted');\n      assert.ok(find('.js-upgrade-plan-banner:contains($2,988/yr)').length, 'upgrade banner is shown with the right price');\n    });\n\n    stubGeocoder['default'](true, {\n      latitude: 101,\n      longitude: 30,\n      address: '1 Main Street, Chicago, IL',\n      addressComponents: [{\n        \"long_name\": \"Chicago\",\n        \"short_name\": \"Chgo\",\n        \"types\": [\"locality\", \"political\"]\n      }, {\n        \"long_name\": \"Cook County\",\n        \"short_name\": \"Cook County\",\n        \"types\": [\"administrative_area_level_2\", \"political\"]\n      }, {\n        \"long_name\": \"Illinois\",\n        \"short_name\": \"IL\",\n        \"types\": [\"administrative_area_level_1\", \"political\"]\n      }, {\n        \"long_name\": \"United States\",\n        \"short_name\": \"US\",\n        \"types\": [\"country\", \"political\"]\n      }]\n    }, function (options) {\n      assert.equal(options.address, 'Downtown Chicago', 'geocoder was called with the right data');\n    });\n\n    fillIn('.location-name', 'Chicago');\n    fillIn('.location-address', 'Downtown Chicago');\n    fillIn('.location-adminname', 'Chicago Admin');\n    fillIn('.location-adminemail', 'chicago@example.com');\n    fillIn('.location-adminpassword', 'chicago123');\n    fillIn('.location-copyfrom', 3);\n\n    triggerEvent('.location-address', 'blur');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/subscription', function (request) {\n        var subscription = parsePostData['default'](request.requestBody).subscription;\n        assert.equal(subscription.quantity, 2, 'quantity is increased just in time');\n        assert.equal(subscription.plan, 'premium', 'plan is changed to premium just in time');\n\n        return [200, { 'Content-Type': 'application/json' }, { subscription: subscription }];\n      });\n\n      server.register('POST', '/api/v1/locations', function (request) {\n        var location = JSON.parse(request.requestBody).location;\n        assert.equal(location.name, 'Chicago', 'sent in right name');\n        assert.equal(location.address, 'Downtown Chicago', 'sent in input address');\n        assert.equal(location.latitude, 101, 'sent in latitude');\n        assert.equal(location.longitude, 30, 'sent in longitude');\n        assert.ok(!location.disabled, 'enabled by default');\n        assert.equal(location.master_location_id, '3', 'sent in master_location_id');\n        assert.ok(location.timezone, 'timezone is not null');\n        var admin = location.new_admin;\n        assert.equal(admin.name, 'Chicago Admin', 'sent in admin name');\n        assert.equal(admin.email, 'chicago@example.com', 'sent in admin email');\n        assert.equal(admin.password, 'chicago123', 'sent in admin password');\n        assert.equal(location.city, 'Chicago', 'city passed in');\n        assert.equal(location.state, 'IL', 'state passed in');\n        assert.equal(location.country, 'US', 'country passed in');\n\n        location.id = 4;\n        admin.id = 4;\n        location.admin_id = admin.id;\n\n        return [201, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      server.register('GET', '/api/v1/admins/4', function () {\n        return [200, { 'Content-Type': 'application/json' }, {\n          admin: {\n            id: 4,\n            name: 'Chicago Admin',\n            email: 'chicago@example.com'\n          }\n        }];\n      });\n\n      click('.btn:contains(Upgrade and Add Location)');\n    });\n  });\n\n  qunit.test('creating a new location, while on standard, but with multilocation enabled', function (assert) {\n    assert.expect(5);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          plan: 'standard',\n          period: 'yearly',\n          features: ['multi_location', 'location_switcher'],\n          quantity: 1\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      var existingLocation = find('.js-line-item-location:eq(0)');\n      assert.equal(existingLocation.find('.js-line-item-price').text().trim(), '$1,188.00', 'displays standard price');\n      assert.ok(!existingLocation.hasClass('priceUpdated'), 'its not highlighted');\n      var newLocation = find('.js-line-item-location:eq(1)');\n      assert.equal(newLocation.find('.js-line-item-price').text().trim(), '$1,188.00', 'displays standard price');\n      assert.ok(newLocation.hasClass('priceUpdated'), 'its highlighted');\n      assert.ok(!find('.js-upgrade-plan-banner').length, 'upgrade banner is not shown');\n    });\n  });\n\n  qunit.test('creating a new location, while on standard, but with quantity to spare', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          plan: 'standard',\n          period: 'yearly',\n          features: ['location_switcher'],\n          quantity: 2\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      assert.ok(!find('.js-line-item-location').length, 'ledger is not shown');\n      assert.ok(!find('.js-upgrade-plan-banner').length, 'upgrade banner is not shown');\n    });\n  });\n\n  qunit.test('(edge case) creating a new location, while on standard, where incrementing the quantity to 1 would not trigger an upgrade required', function (assert) {\n    assert.expect(2);\n\n    locations[2].disabled = true;\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          plan: 'standard',\n          period: 'yearly',\n          features: ['location_switcher'],\n          quantity: 0\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      assert.ok(find('.js-line-item-location').length, 'ledger is shown');\n      assert.ok(!find('.js-upgrade-plan-banner').length, 'upgrade banner is not shown');\n    });\n  });\n\n  qunit.test('creating a new location, while on premium', function (assert) {\n    assert.expect(5);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          plan: 'premium',\n          period: 'yearly',\n          features: ['multi_location', 'location_switcher'],\n          quantity: 1\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      var existingLocation = find('.js-line-item-location:eq(0)');\n      assert.equal(existingLocation.find('.js-line-item-price').text().trim(), '$2,988.00', 'displays premium price');\n      assert.ok(!existingLocation.hasClass('priceUpdated'), 'its not highlighted');\n      var newLocation = find('.js-line-item-location:eq(1)');\n      assert.equal(newLocation.find('.js-line-item-price').text().trim(), '$2,988.00', 'displays premium price');\n      assert.ok(newLocation.hasClass('priceUpdated'), 'its highlighted');\n      assert.ok(!find('.js-upgrade-plan-banner').length, 'upgrade banner is not shown');\n    });\n  });\n\n  qunit.test('creating a new location, while on premium, with quantity to spare', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          trial_end_date: new Date(),\n          plan: 'premium',\n          period: 'yearly',\n          features: ['multi_location', 'location_switcher'],\n          quantity: 2\n        }\n      }];\n    });\n\n    visit('/');\n    click('a:contains(Settings)');\n    click('.js-mainHeader-location-trigger');\n    click('ic-menu-item:contains(Add a location)');\n\n    andThen(function () {\n      assert.ok(!find('.js-line-item-location').length, 'ledger is not shown');\n      assert.ok(!find('.js-upgrade-plan-banner').length, 'upgrade banner is not shown');\n    });\n  });\n\n});","define('garaje/tests/acceptance/new-location-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/new-location-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/new-location-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/not-found-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/fill-in-with-key-press'], function (Ember, qunit, startApp, stubConfirm, Pretender, FactoryGuy, fillInWithKeyPress) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Not Found', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'San Diego',\n        company: {\n          id: company.id\n        }\n      })['location'], FactoryGuy['default'].build('location', {\n        id: 2,\n        name: 'NY',\n        company: {\n          id: company.id\n        }\n      })['location'], FactoryGuy['default'].build('location', {\n        id: 3,\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        primary: true\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/locations', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  var notFound = 'protected.not-found';\n\n  qunit.test('invalid link redirects to 404 not-found', function (assert) {\n    assert.expect(2);\n    visit('/settings');\n    visit('/kamal');\n\n    andThen(function () {\n      assert.equal(currentPath(), notFound, 'Route has path: ' + notFound);\n    });\n\n    var origHistoryBack = window.history.back;\n    window.history.back = function () {\n      assert.ok(true, 'back was called');\n    };\n\n    click('.js-back');\n\n    andThen(function () {\n      window.history.back = origHistoryBack;\n    });\n  });\n\n});","define('garaje/tests/acceptance/not-found-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/not-found-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/not-found-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/notifications-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, stubConfirm, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, locations, company;\n\n  qunit.module('Acceptance: Notifications', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      company = FactoryGuy['default'].build('company', {\n        id: 1,\n        slack_team_name: 'Envoy',\n        slack_connected: true,\n        hipchat_connected: true\n      })['company'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        company: {\n          id: 1\n        },\n        email_notification_enabled: false,\n        sms_notification_enabled: false,\n        slack_notification_enabled: true,\n        hipchat_notification_enabled: true\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/employees', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: [],\n            meta: {\n              total: 1\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('toggling email & sms notification', function (assert) {\n    assert.expect(6);\n\n    visit('/settings/notifications');\n\n    andThen(function () {\n      assert.ok(!find('.js-email-notification').prop('checked'), 'Email notification is off');\n      assert.ok(!find('.js-sms-notification').prop('checked'), 'Email notification is off');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.email_notification_enabled, 'Email notification is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.js-email-notification');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.sms_notification_enabled, 'SMS notification is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.js-sms-notification');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('no employees', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/employees', function (request) {\n      assert.equal(request.queryParams.limit, 1, 'request for 1 rows, just want to get the meta');\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [],\n        meta: {\n          total: 0\n        }\n      }];\n    });\n\n    visit('/settings/notifications');\n\n    andThen(function () {\n      assert.ok(find('.empty-employees').length, 'user sees the empty-employees state');\n      assert.equal(find('.empty-employees').length, 1, 'one empty state at a time please');\n    });\n\n    andThen(function () {\n      server.register('GET', '/api/v1/employees', function (request) {\n        return [200, { 'Content-Type': 'application/json' }, {\n          employees: [],\n          meta: {\n            total: 0\n          }\n        }];\n      });\n\n      click('a:contains(Add Employee)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.employees.new-employee', 'it goes to the add employees route');\n    });\n  });\n\n  qunit.test('has employees but no notification method set', function (assert) {\n    assert.expect(9);\n\n    Ember['default'].$.extend(locations[0], {\n      email_notification_enabled: false,\n      sms_notification_enabled: false,\n      slack_notification_enabled: false,\n      hipchat_notification_enabled: false\n    });\n\n    visit('/settings/notifications');\n\n    andThen(function () {\n      assert.ok(find('.empty-notifications').length, 'user sees the empty-notifications state');\n      assert.equal(find('.empty-notifications').length, 1, 'one empty state at a time please');\n    });\n\n    click('.btn:contains(Enable host notifications)');\n\n    andThen(function () {\n      assert.ok(find('.js-email-notification').length, 'i can now see the form');\n    });\n\n    // click to enable\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.email_notification_enabled, 'Email notification is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n      click('.js-email-notification');\n    });\n\n    andThen(function () {\n      assert.ok(find('.js-email-notification').prop('checked'), 'it is checked');\n    });\n\n    // click to disable\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(!location.email_notification_enabled, 'Email notification is off');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n      click('.js-email-notification');\n    });\n\n    andThen(function () {\n      assert.ok(!find('.js-email-notification').prop('checked'), 'it is unchecked');\n      assert.ok(!find('.empty-notifications').length, 'i dont see the empty-notifications page');\n    });\n\n    // go elsewhere\n    click('a:contains(Pre-Registration)');\n\n    // and come back\n    click('a:contains(Notifications)');\n\n    andThen(function () {\n      assert.ok(find('.empty-notifications').length, 'i see the empty-notifications page');\n    });\n  });\n\n});","define('garaje/tests/acceptance/notifications-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/notifications-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/notifications-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/onboarding-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/parse-post-data', 'garaje/tests/helpers/fill-in-with-key-press', 'garaje/tests/helpers/stub-confirm', 'garaje/tests/helpers/stub-geocoder'], function (Ember, qunit, startApp, Pretender, FactoryGuy, parsePostData, fillInWithKeyPress, stubConfirm, stubGeocoder) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Application: onboarding', {\n    beforeEach: function beforeEach(assert) {\n      App = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        company: {\n          id: 1\n        },\n        primary: true,\n        address: '461 2nd St, San Francisco, CA 94546',\n        email_notification_enabled: false,\n        sms_notification_enabled: false,\n        slack_notification_enabled: true\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            locations: [{\n              id: 1,\n              config_id: 1,\n              company_id: 1,\n              pre_registration_enabled: true\n            }]\n          }];\n        });\n\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Jacob Inc',\n              email: 'foo@example.com',\n              slack_team_name: 'Envoy',\n              slack_connected: true,\n              onboarding_status: 'location',\n              onboarding_locations_count: '2-5'\n            }\n          }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com',\n              name: 'Foo Bar'\n            }\n          }];\n        });\n\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n\n        this.put('/api/v1/locations/1', function (request) {\n          var body = JSON.parse(request.requestBody).location;\n          if (body.logo) {\n            assert.ok(body.logo, 'set a logo');\n          } else {\n            assert.ok(!body.logo, 'removed logo');\n          }\n          locations[0].logo = body.logo;\n          return [200, { 'Content-Type': 'application/json' }, { location: locations[0] }];\n        });\n\n        this.get('/api/v1/configs/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: { \"id\": 1, \"location_id\": 1, \"been_here_before\": true, \"self_sign_out\": false, \"accept_deliveries\": false, \"has_nda_page\": true, \"has_photo_page\": true, \"nda_optional\": false, \"nda_bcc_email\": \"\", \"nda_bcc_enabled\": false, \"ndas\": [{ \"name\": \"Meeting\", \"body\": \"NONDISCLOSURE AGREEMENT Acknowledged and agreed on __DATE__:\\n\", \"skippable\": false, \"updated_at\": \"2015-02-02T20:27:10+00:00\", \"require_resign\": false }], \"has_multiple_nda\": false, \"nda_text\": \"NONDISCLOSURE AGREEMENT \", \"nda_require_resign\": false, \"has_email\": true, \"has_phone\": true, \"email_required\": false, \"phone_required\": false, \"custom_fields\": [{ \"type\": null, \"label\": \"Your Company\", \"required\": false, \"dropdown\": false, \"options\": [] }, { \"type\": null, \"label\": \"Hooray dropdown\", \"required\": false, \"dropdown\": true, \"options\": [{ \"value\": \"item1\" }, { \"value\": \"item2\" }, { \"value\": \"item3\" }] }, { \"type\": null, \"label\": \"Country of origin\", \"required\": false, \"dropdown\": false, \"options\": [] }], \"welcome_image\": null, \"slideshows\": [], \"integrations\": [] }\n          }];\n        });\n\n        this.get('/api/v1/employees', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: [],\n            meta: {\n              total: 0\n            }\n          }];\n        });\n\n        this.get('/api/v1/entries/calendar', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            calendar: []\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('just after signing up (onboarding status set to location), the user is taken to the first onboarding step', function (assert) {\n    assert.expect(1);\n\n    visit('/');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.location', 'user is taken to the first onboarding step');\n    });\n  });\n\n  qunit.test('if a user leaves in the middle of onboarding and returns, they will be taken to the onboarding step where they left off', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          onboarding_status: 'employees'\n        }\n      }];\n    });\n\n    visit('/');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.employees.index', 'user is taken to employees');\n    });\n  });\n\n  qunit.test('if a user has not completed onboarding and tries to go to a different route, they are redirected back to the last onboarding step where they left off', function (assert) {\n    assert.expect(1);\n\n    visit('/dashboard');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.location', 'user is redirected to the first onboarding step');\n    });\n  });\n\n  //TODO: figure out why the hell the below test doesn't work when this works in production\n\n  // test('on location screen, testing droppability, deleting a logo', function(assert) {\n  //   assert.expect(2);\n\n  //   locations[0].logo = {\n  //     url: 'assets/tmp/luxoball.png',\n  //     smallUrl: 'assets/tmp/luxoball-normal.png',\n  //     thumbUrl: 'assets/tmp/luxoball-thumb.png'\n  //   };\n\n  //   visit('/');\n\n  //   andThen(function(){\n  //     assert.ok(find('.js-logo-upload').hasClass('droppable'), 'logo component is droppable');\n  //     click('.js-delete-logo');\n  //   });\n  // });\n\n  qunit.test('on location screen, location address empty should display a validation error', function (assert) {\n    assert.expect(3);\n\n    visit('/');\n\n    fillIn('.company-name', 'Envoy');\n    fillIn('.location-name', 'HQ');\n    fillIn('.location-address', '');\n\n    click('.js-continue');\n\n    andThen(function () {\n      assert.equal(find('.addressLabel').text().trim(), 'Enter an address', 'validation error displayed');\n    });\n\n    fillIn('.location-address', '461 2nd St, San Francisco, CA, 94107, USA');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      stubGeocoder['default'](true, {\n        latitude: 37.7834708,\n        longitude: -122.3941284,\n        address: '461 2nd St, San Francisco, CA, 94107, USA',\n        addressComponents: [{\n          \"long_name\": \"461\",\n          \"short_name\": \"461\",\n          \"types\": [\"street_number\"]\n        }, {\n          \"long_name\": \"2nd Street\",\n          \"short_name\": \"2nd St\",\n          \"types\": [\"route\"]\n        }, {\n          \"long_name\": \"South Beach\",\n          \"short_name\": \"South Beach\",\n          \"types\": [\"neighborhood\", \"political\"]\n        }, {\n          \"long_name\": \"San Francisco\",\n          \"short_name\": \"SF\",\n          \"types\": [\"locality\", \"political\"]\n        }, {\n          \"long_name\": \"San Francisco County\",\n          \"short_name\": \"San Francisco County\",\n          \"types\": [\"administrative_area_level_2\", \"political\"]\n        }, {\n          \"long_name\": \"California\",\n          \"short_name\": \"CA\",\n          \"types\": [\"administrative_area_level_1\", \"political\"]\n        }, {\n          \"long_name\": \"United States\",\n          \"short_name\": \"US\",\n          \"types\": [\"country\", \"political\"]\n        }, {\n          \"long_name\": \"94107\",\n          \"short_name\": \"94107\",\n          \"types\": [\"postal_code\"]\n        }]\n      });\n    });\n\n    click('.js-continue');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.employees.index', 'user is taken to the employees screen');\n    });\n  });\n\n  qunit.test('location name empty should display a validation error, fields should be persisted as expected', function (assert) {\n    assert.expect(3);\n\n    visit('/');\n\n    fillIn('.company-name', 'Envoy');\n    fillIn('.location-name', '');\n    fillIn('.location-address', '461 2nd St, San Francisco, CA, 94107, USA');\n\n    andThen(function () {\n      stubGeocoder['default'](true, {\n        latitude: 37.7834708,\n        longitude: -122.3941284,\n        address: '461 2nd St, San Francisco, CA, 94107, USA',\n        addressComponents: [{\n          \"long_name\": \"461\",\n          \"short_name\": \"461\",\n          \"types\": [\"street_number\"]\n        }, {\n          \"long_name\": \"2nd Street\",\n          \"short_name\": \"2nd St\",\n          \"types\": [\"route\"]\n        }, {\n          \"long_name\": \"South Beach\",\n          \"short_name\": \"South Beach\",\n          \"types\": [\"neighborhood\", \"political\"]\n        }, {\n          \"long_name\": \"San Francisco\",\n          \"short_name\": \"SF\",\n          \"types\": [\"locality\", \"political\"]\n        }, {\n          \"long_name\": \"San Francisco County\",\n          \"short_name\": \"San Francisco County\",\n          \"types\": [\"administrative_area_level_2\", \"political\"]\n        }, {\n          \"long_name\": \"California\",\n          \"short_name\": \"CA\",\n          \"types\": [\"administrative_area_level_1\", \"political\"]\n        }, {\n          \"long_name\": \"United States\",\n          \"short_name\": \"US\",\n          \"types\": [\"country\", \"political\"]\n        }, {\n          \"long_name\": \"94107\",\n          \"short_name\": \"94107\",\n          \"types\": [\"postal_code\"]\n        }]\n      });\n\n      click('.js-continue');\n    });\n\n    andThen(function () {\n      assert.equal(find('.location-name').prev().text().trim(), 'This is a Required Field', 'validation error displayed');\n      fillIn('.location-name', 'HQ');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-continue');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.employees.index', 'user is taken to the employees screen');\n    });\n  });\n\n  // test('on equipment screen, pressing skip should go to employees and persist choice', function(assert) {\n  //   assert.expect(2);\n\n  //   server.register('GET', '/api/v1/companies/1', function(request){\n  //     return [\n  //       200,\n  //       {'Content-Type': 'application/json'},\n  //       {\n  //         company: {\n  //           id: 1,\n  //           name: 'Jacob Inc',\n  //           email: 'foo@example.com',\n  //           slack_connected: false,\n  //           slack_team_name: null,\n  //           onboarding_status: 'equipment',\n  //           onboarding_locations_count: '2-5'\n  //         }\n  //       }\n  //     ];\n  //   });\n\n  //   server.register('GET', '/api/v1/employees', function(request){\n  //     return [\n  //       200,\n  //       {'Content-Type': 'application/json'},\n  //       {\n  //         employees: [],\n  //         meta: {\n  //           total: 0\n  //         }\n  //       }\n  //     ];\n  //   });\n\n  //   visit('/onboarding/equipment');\n\n  //   andThen(function() {\n  //     server.register('PUT', '/api/v1/companies/1', function(request){\n  //       var company = JSON.parse(request.requestBody).company;\n  //       assert.equal(company.onboarding_status, 'employees', 'updated onboarding status');\n\n  //         return [\n  //           200,\n  //           {'Content-Type': 'application/json'},\n  //           {}\n  //         ];\n  //     });\n\n  //     click('.js-skip');\n  //   });\n\n  //   andThen(function() {\n  //     assert.equal(currentPath(), 'protected.onboarding.employees.index', 'user is taken to the employees onboarding step');\n  //   });\n  // });\n\n  // test('on equipment screen, going to envoy-in-a-box, then on to employees', function(assert) {\n  //   assert.expect(1);\n\n  //   server.register('GET', '/api/v1/companies/1', function(request){\n  //     return [\n  //       200,\n  //       {'Content-Type': 'application/json'},\n  //       {\n  //         company: {\n  //           id: 1,\n  //           name: 'Jacob Inc',\n  //           email: 'foo@example.com',\n  //           slack_connected: false,\n  //           slack_team_name: null,\n  //           onboarding_status: 'equipment',\n  //           onboarding_locations_count: '2-5'\n  //         }\n  //       }\n  //     ];\n  //   });\n\n  //   server.register('GET', '/api/v1/employees', function(request){\n  //     return [\n  //       200,\n  //       {'Content-Type': 'application/json'},\n  //       {\n  //         employees: [],\n  //         meta: {\n  //           total: 0\n  //         }\n  //       }\n  //     ];\n  //   });\n\n  //   visit('/onboarding/equipment');\n\n  //   andThen(function() {\n  //     click('a:contains(Choose Equipment)');\n  //   });\n\n  //   andThen(function() {\n  //     assert.equal(currentPath(), 'protected.onboarding.equipment.envoy-in-a-box', 'user is taken to the employees onboarding step');\n  //   });\n  // });\n\n  // test('on envoy-in-a-box, select products click continue and create order', function(assert) {\n  //   assert.expect(12);\n\n  //   server.register('GET', '/api/v1/companies/1', function(request){\n  //     return [\n  //       200,\n  //       {'Content-Type': 'application/json'},\n  //       {\n  //         company: {\n  //           id: 1,\n  //           name: 'Jacob Inc',\n  //           email: 'foo@example.com',\n  //           slack_connected: false,\n  //           slack_team_name: null,\n  //           onboarding_status: 'equipment.envoy-in-a-box',\n  //           onboarding_locations_count: '2-5'\n  //         }\n  //       }\n  //     ];\n  //   });\n\n  //   visit('/onboarding/equipment/envoy-in-a-box');\n\n  //   andThen(function() {\n  //     // select iPadAir 2 Gold\n  //     click('div.configurator-ipadAir2Gold');\n\n  //     click('.configurator-atrest');\n  //     // Notice: don't know why we need to simulate click twice so that\n  //     // the red stand got stelected\n  //     click('input[value=\"atrest-red\"]');\n  //     click('input[value=\"atrest-red\"]');\n\n  //     fillInWithKeyPress(\n  //       'input.shipping-address',\n  //       '461 2nd Street, #351, San Francisco, CA, 94107',\n  //       'keyup'\n  //     );\n  //     fillInWithKeyPress(\n  //       'input.shipping-address-unit',\n  //       '#351',\n  //       'keyup'\n  //     );\n  //   });\n\n  //   andThen(function() {\n  //     // mock geocoder result\n  //     var controller = App.__container__.lookup(\n  //       'controller:protected.onboarding.equipment.envoy-in-a-box'\n  //     );\n  //     controller.set('geocoder', function(){\n  //       return Ember.RSVP.resolve({\n  //         parsedAddress: {\n  //           line1: '461 2nd Street',\n  //           city: 'San Francisco',\n  //           country_code: 'US',\n  //           state: 'CA',\n  //           zip: 94107\n  //         }\n  //       });\n  //     });\n\n  //     server.register('POST', '/api/orders', function(request){\n  //       var jsonBody = JSON.parse(request.requestBody);\n  //       assert.equal(jsonBody.order.envoy_user_id, 1);\n  //       assert.deepEqual(jsonBody.order.shipping_address, {\n  //         name: 'Foo Bar',\n  //         line1: '461 2nd Street',\n  //         line2: '#351',\n  //         city: 'San Francisco',\n  //         country_code: 'US',\n  //         state: 'CA',\n  //         zip: 94107\n  //       });\n  //       assert.deepEqual(\n  //         jsonBody.order.shipping_address,\n  //         jsonBody.order.billing_address\n  //       );\n  //       assert.equal(jsonBody.order.items.length, 3);\n  //       assert.equal(jsonBody.order.items[0].variant_id, 3);\n  //       assert.equal(jsonBody.order.items[0].quantity, 1);\n  //       assert.equal(jsonBody.order.items[1].variant_id, 5);\n  //       assert.equal(jsonBody.order.items[1].quantity, 1);\n  //       assert.equal(jsonBody.order.items[2].variant_id, 4);\n  //       assert.equal(jsonBody.order.items[2].quantity, 1);\n  //       return [\n  //         200,\n  //         {'Content-Type': 'application/json'},\n  //         {\n  //           order: {}\n  //         }\n  //       ];\n  //     });\n  //     server.register('PUT', '/api/v1/companies/1', function(request){\n  //       var company = JSON.parse(request.requestBody).company;\n  //       assert.equal(company.onboarding_status, 'employees', 'updated onboarding status');\n  //       return [\n  //         200,\n  //         {'Content-Type':\n  //          'application/json'},\n  //         {}\n  //       ];\n  //     });\n  //     click('.btn:contains(Continue)');\n  //   });\n\n  //   andThen(function() {\n  //     assert.equal(currentPath(), 'protected.onboarding.employees.index', 'user is taken to the ipad setting onboarding step');\n  //   });\n  // });\n\n  qunit.test('on employees screen, clicking csv import', function (assert) {\n    assert.expect(1);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'employees'\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/employees', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [],\n        meta: {\n          total: 0\n        }\n      }];\n    });\n\n    visit('/onboarding/employees');\n\n    click('.js-import-csv');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.employees.import-csv', 'user is taken to the import CSV onboarding step');\n    });\n  });\n\n  qunit.test('on employees screen, adding employees manually', function (assert) {\n    assert.expect(6);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'employees'\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/employees', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        employees: [],\n        meta: {\n          total: 0\n        }\n      }];\n    });\n\n    visit('/onboarding/employees');\n\n    click('.js-add-manually');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.employees.add-manual', 'user is taken to add new employees manually');\n\n      var firstTr = find('.add-employee').first();\n\n      fillIn(firstTr.find('td:eq(0) input'), 'Full Name');\n      fillIn(firstTr.find('td:eq(1) input'), 'work@email.com');\n      fillIn(firstTr.find('.js-employee-phone-number'), '1234567890');\n    });\n\n    andThen(function () {\n      server.register('POST', '/api/v1/employees', function (request) {\n        var employee = JSON.parse(request.requestBody).employee;\n        assert.equal(employee.name, 'Full Name', 'name is persisted');\n        assert.equal(employee.email, 'work@email.com', 'email is persisted');\n        assert.equal(employee.phone_number, '1234567890', 'phone number is persisted');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'ipad', 'updated onboarding status');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.btn:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.ipad', 'user is taken to the ipad onboarding step');\n    });\n  });\n\n  qunit.test('on ipad screen, toggling options', function (assert) {\n    assert.expect(3);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'ipad'\n        }\n      }];\n    });\n\n    visit('/onboarding/ipad');\n\n    andThen(function () {\n      assert.ok(find('.js-document-signing').prop('checked'), 'Document signing is on');\n      assert.ok(find('.js-visitor-photos-input').prop('checked'), 'Visitor photos is on');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(!config.has_nda_page, 'Document signing is off');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-document-signing');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (req) {\n        var config = JSON.parse(req.requestBody).config;\n        config.id = 1;\n        assert.ok(!config.has_photo_page, 'Photos are off');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.js-visitor-photos');\n    });\n  });\n\n  qunit.test('on ipad screen, email and phone requiring/optional', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'ipad'\n        }\n      }];\n    });\n\n    visit('/onboarding/ipad');\n\n    click('.js-email-required'); // click to toggle the checkbox\n    click('.js-phone-required'); // click to toggle the checkbox\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'notifications', 'updated onboarding status');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n        // assert.ok(config.email_required, 'email_required changed to true');\n        // assert.ok(config.phone_required, 'phone_required changed to true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('button:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.notifications', 'user is taken to the notifications onboarding step');\n    });\n  });\n\n  qunit.test('on ipad screen, adding a custom text field', function (assert) {\n    assert.expect(11);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'ipad'\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/onboarding/ipad');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 0, 'there are 0 custom fields');\n    });\n\n    click('.btn:contains(Add a new field)');\n    click('ic-menu-item:contains(Text field)');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 1, 'there is 1 custom fields');\n      assert.equal(find('.custom-field input').attr('placeholder'), 'Give this field a name', 'placeholder is correct');\n      assert.ok(!find('.custom-field .dropdownFields').length, 'and its not a dropdown');\n    });\n\n    // saving\n    andThen(function () {\n      fillIn('.js-label', 'Occupation');\n      click('.custom-field input[type=checkbox]'); // toggle required to true\n\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n\n        var customFields = config.custom_fields;\n        assert.equal(customFields.length, 1, '1 custom field sent back');\n\n        var textfield = customFields[0];\n        assert.ok(!textfield.dropdown, 'its a textfield');\n        assert.equal(textfield.label, 'Occupation', 'label is correct');\n        assert.ok(!textfield.options.length, 'no options');\n        assert.ok(textfield.required, 'its required');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'notifications', 'updated onboarding status');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.btn:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.notifications', 'user is taken to the notifications onboarding step');\n    });\n  });\n\n  qunit.test('on ipad screen, adding a custom dropdown field', function (assert) {\n    assert.expect(30);\n\n    var placeholderInput;\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'ipad'\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/onboarding/ipad');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 0, 'there are no custom fields');\n    });\n\n    click('.btn:contains(Add a new field)');\n    click('ic-menu-item:contains(Dropdown)');\n\n    andThen(function () {\n      assert.equal(find('.custom-field').length, 1, 'there is one custom field');\n      assert.ok(find('.custom-field .dropdownFields').length, 'and its a dropdown');\n\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.equal(placeholderInput.length, 1, 'it contains a single placeholder option');\n      assert.equal(placeholderInput.val(), '', 'and its empty');\n    });\n\n    fillInWithKeyPress['default']('.custom-field .dropdownFields input', 'a', 'keyup');\n\n    andThen(function () {\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.equal(placeholderInput.length, 2, 'it added a new placeholder field');\n      assert.equal(Ember['default'].$(placeholderInput.get(1)).val(), '', 'and its empty');\n      assert.equal(Ember['default'].$(placeholderInput.get(0)).val(), 'a', 'while the first input has our letter');\n    });\n\n    fillIn('.js-label', 'What is your favorite color?');\n    fillInWithKeyPress['default']('.dropdownField:eq(0) input', 'Red', 'keyup');\n    fillInWithKeyPress['default']('.dropdownField:eq(1) input', '  ', 'keyup');\n    fillInWithKeyPress['default']('.dropdownField:eq(2) input', 'Blue', 'keyup');\n\n    andThen(function () {\n      placeholderInput = find('.custom-field textarea');\n      assert.ok(!placeholderInput.length, 'no textarea visible');\n\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.equal(placeholderInput.length, 4, 'four options visible');\n      assert.equal(Ember['default'].$(placeholderInput.get(0)).val(), 'Red', 'first is Red');\n      assert.equal(Ember['default'].$(placeholderInput.get(1)).val(), '  ', 'second is spaces');\n      assert.equal(Ember['default'].$(placeholderInput.get(2)).val(), 'Blue', 'third is Blue');\n      assert.equal(Ember['default'].$(placeholderInput.get(3)).val(), '', 'fourth is empty');\n    });\n\n    click('a:contains(Add multiple options at once)');\n\n    andThen(function () {\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.ok(!placeholderInput.length, 'no options visible');\n\n      placeholderInput = find('.custom-field textarea');\n      assert.equal(placeholderInput.val(), 'Red\\nBlue', 'options displayed as a textarea, removing blank options');\n    });\n\n    fillIn('.custom-field textarea', 'Red\\nBlue\\n\\nYellow');\n\n    click('a:contains(Switch to individual inputs)');\n\n    andThen(function () {\n      placeholderInput = find('.custom-field textarea');\n      assert.ok(!placeholderInput.length, 'no textarea visible');\n\n      placeholderInput = find('.custom-field .dropdownFields input');\n      assert.equal(placeholderInput.length, 4, 'three options visible');\n\n      assert.equal(Ember['default'].$(placeholderInput.get(0)).val(), 'Red', 'first is Red');\n      assert.equal(Ember['default'].$(placeholderInput.get(1)).val(), 'Blue', 'second is Blue');\n      assert.equal(Ember['default'].$(placeholderInput.get(2)).val(), 'Yellow', 'third is Yellow');\n      assert.equal(Ember['default'].$(placeholderInput.get(3)).val(), '', 'fourth is empty');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n\n        var customFields = config.custom_fields;\n        assert.equal(customFields.length, 1, '1 custom field sent back');\n\n        var dropdown = customFields[0];\n        assert.ok(dropdown.dropdown, 'its a dropdown');\n        assert.equal(dropdown.label, 'What is your favorite color?', 'label is correct');\n\n        var options = [{ value: 'Red' }, { value: 'Blue' }, { value: 'Yellow' }];\n        assert.deepEqual(dropdown.options, options, 'options sent back');\n\n        assert.ok(!dropdown.required, 'not required by default');\n\n        assert.ok(!dropdown.is_textarea, 'send is_textarea as false');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'notifications', 'updated onboarding status');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('.btn:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.notifications', 'user is taken to the notifications onboarding step');\n    });\n  });\n\n  qunit.test('on ipad screen, email and phone removing disabled if been_here_before is on', function (assert) {\n    assert.expect(3);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'ipad'\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          has_email: true,\n          has_phone: true,\n          been_here_before: true,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/onboarding/ipad');\n\n    andThen(function () {\n      assert.ok(find('.js-has-email').length, 'email close link is visible');\n      assert.ok(find('.js-has-phone').length, 'phone close link is visible');\n    });\n\n    click('.js-has-phone'); // click to remove the phone field\n\n    andThen(function () {\n      assert.ok(!find('.js-has-email').length, 'email close link is not visible because been here before is enabled');\n    });\n  });\n\n  qunit.test('on ipad screen, email and phone requiring/optional', function (assert) {\n    assert.expect(6);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'ipad'\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          has_email: true,\n          has_phone: true,\n          email_required: true,\n          phone_required: false,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/onboarding/ipad');\n\n    andThen(function () {\n      assert.ok(find('.js-email-required').prop('checked'), 'email is required');\n      assert.ok(!find('.js-phone-required').prop('checked'), 'phone is optional');\n    });\n\n    click('.js-email-required');\n    click('.js-phone-required');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'notifications', 'updated onboarding status');\n\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      server.register('PUT', '/api/v1/configs/1', function (request) {\n        var config = JSON.parse(request.requestBody).config;\n        config.id = 1;\n        assert.ok(!config.email_required, 'email_required changed to false');\n        assert.ok(config.phone_required, 'phone_required changed to true');\n        return [204, { 'Content-Type': 'application/json' }, ''];\n      });\n\n      click('button:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.notifications', 'user is taken to the notifications onboarding step');\n    });\n  });\n\n  qunit.test('on notifications screen, toggling email & sms notification', function (assert) {\n    assert.expect(6);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'notifications'\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/configs/1', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        config: {\n          id: 1,\n          location_id: 1,\n          integrations: [],\n          slideshows: []\n        }\n      }];\n    });\n\n    visit('/onboarding/notifications');\n\n    andThen(function () {\n      assert.ok(!find('.js-email-notification').prop('checked'), 'Email notification is off');\n      assert.ok(!find('.js-sms-notification').prop('checked'), 'Email notification is off');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.email_notification_enabled, 'Email notification is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.js-email-notification');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.sms_notification_enabled, 'SMS notification is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.js-sms-notification');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'pre-registration', 'updated onboarding status');\n\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n\n      click('.btn:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.pre-registration', 'user is taken to the pre-registration onboarding step');\n    });\n  });\n\n  qunit.test('on notifications screen, toggling slack', function (assert) {\n    assert.expect(9);\n\n    server.register('GET', '/api/v1/locations', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{\n          id: 1,\n          name: 'SF',\n          company_id: 1,\n          primary: true,\n          address: '461 2nd St, San Francisco, CA 94546',\n          email_notification_enabled: false,\n          sms_notification_enabled: false,\n          slack_notification_enabled: true\n        }]\n      }];\n    });\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'notifications',\n          slack_team_name: 'Envoy',\n          slack_connected: true\n        }\n      }];\n    });\n\n    visit('/onboarding/notifications');\n\n    andThen(function () {\n      assert.ok(find('.js-slack-notification').prop('checked'), 'slack is enabled');\n      assert.equal(find('.js-slack p').text(), 'Connected to Envoy. Disconnect', 'team name');\n    });\n\n    // disable\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(!location.slack_notification_enabled, 'slack notification is disabled');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.js-slack-notification');\n    });\n\n    // re-enable\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.slack_notification_enabled, 'slack notification is enabled');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.js-slack-notification');\n    });\n\n    // disconnect\n    andThen(function () {\n\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(!location.slack_notification_enabled, 'slack notification is disabled');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      server.register('PUT', '/api/v1/companies/1', function (req) {\n        var company = JSON.parse(req.requestBody).company;\n        company.id = 1;\n        assert.ok(!company.slack_connected, 'slack disconnected');\n        return [200, { 'Content-Type': 'application/json' }, { company: company }];\n      });\n\n      stubConfirm['default'](assert, function () {\n        click('.js-slack a:contains(Disconnect)');\n      });\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'pre-registration', 'updated onboarding status');\n\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n\n      click('.btn:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.pre-registration', 'user is taken to the pre-registration onboarding step');\n    });\n  });\n\n  qunit.test('on pre-registration screen, toggling guest pre-registration', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'pre-registration',\n          slack_team_name: 'Envoy',\n          slack_connected: true\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/locations', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        locations: [{\n          id: 1,\n          config_id: 1,\n          company_id: 1,\n          pre_registration_enabled: false\n        }]\n      }];\n    });\n\n    visit('/onboarding/pre-registration');\n\n    andThen(function () {\n      assert.ok(!find('.js-pre-registration').prop('checked'), 'pre-registration is not enabled');\n      assert.ok(!find('h2:contains(Invitation Email)').length, 'email preview hidden');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.pre_registration_enabled, 'Pre-registration is enabled');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.js-pre-registration');\n    });\n\n    andThen(function () {\n      assert.ok(find('h2:contains(Invitation Email)').length, 'email preview shown');\n\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'video', 'updated onboarding status');\n\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n\n      click('.btn:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.video', 'user is taken to the video onboarding step');\n    });\n  });\n\n  qunit.test('on pre-registration screen, updating and previewing invitation note, sending a test email', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['pre_registration']\n        }\n      }];\n    });\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'pre-registration',\n          slack_team_name: 'Envoy',\n          slack_connected: true\n        }\n      }];\n    });\n\n    visit('/onboarding/pre-registration');\n\n    var htmlResponse;\n\n    andThen(function () {\n      assert.equal($('textarea').val(), '', 'empty invitation note');\n\n      server.register('POST', '/api/v1/locations/1/invite_preview', function () {\n        return [201, { 'Content-Type': 'application/json' }, {\n          body: 'markupResponse',\n          subject: 'hello'\n        }];\n      });\n\n      fillIn('textarea', '**This is an example pre-registration invite you can send visitors**');\n      click('div:contains(Preview email)');\n    });\n\n    andThen(function () {\n      var preRegController = App.__container__.lookup('controller:protected/onboarding/pre-registration');\n      assert.equal(preRegController.get('previewEmailObject.body'), 'markupResponse', 'iframe srcdoc has same html as response');\n      assert.equal($('.js-email-preview-subject').text().trim(), 'hello', 'email subject is correct');\n\n      server.register('POST', '/api/v1/locations/1/send_invite_preview', function () {\n        return [201, { 'Content-Type': 'application/json' }, 'a4d798bf065bf0dbe269215e'];\n      });\n\n      click('.sendTestPreRegistrationEmail');\n    });\n\n    click('div:contains(Edit text)');\n\n    andThen(function () {\n      //clicking back and forth to test that another request has not been sent to the server if the markdown hasn't changed\n      server.register('POST', '/api/v1/locations/1/invite_preview', function (req) {\n        assert.ok(req, 'THIS SHOULD NOT BE GETTING CALLED');\n        return [201, { 'Content-Type': 'application/json' }, {\n          body: 'markupResponse',\n          subject: 'hello'\n        }];\n      });\n\n      click('div:contains(Preview email)');\n    });\n\n    click('div:contains(Edit text)');\n\n    andThen(function () {\n      assert.equal($('textarea').val(), '**This is an example pre-registration invite you can send visitors**', 'textArea has right message');\n\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.equal(location.pre_registration_notes, '**This is an example pre-registration invite you can send visitors**', 'request has right notes value');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'video', 'updated onboarding status');\n\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n\n      click('.btn:contains(Continue)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.onboarding.video', 'user is taken to the video onboarding step');\n    });\n  });\n\n  qunit.test('on video screen, completing onboarding', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/companies/1', function (request) {\n      return [200, { 'Content-Type': 'application/json' }, {\n        company: {\n          id: 1,\n          name: 'Jacob Inc',\n          email: 'foo@example.com',\n          onboarding_status: 'video'\n        }\n      }];\n    });\n\n    visit('/onboarding/video');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/companies/1', function (request) {\n        var company = JSON.parse(request.requestBody).company;\n        assert.equal(company.onboarding_status, 'complete', 'updated onboarding status');\n\n        return [200, { 'Content-Type': 'application/json' }, {}];\n      });\n\n      click('.btn:contains(Go to Dashboard)');\n    });\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.dashboard.index', 'user is taken to the dashboard');\n    });\n  });\n\n});","define('garaje/tests/acceptance/onboarding-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/onboarding-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/onboarding-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/outdated-ipad-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, loc;\n\n  qunit.module('Application: iPad Outdated Bar', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date()\n            }\n          }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              name: 'Acme',\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: [loc] }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('it displays the ipad outdated bar if update is available', function (assert) {\n    assert.expect(3);\n\n    loc = FactoryGuy['default'].build('location', { company: {\n        id: 1\n      }, installed_version: '1.2.4', current_version: '1.2.5' })['location'];\n\n    visit('/');\n\n    andThen(function () {\n      var messageBar = find('.messageBar.static');\n      assert.ok(messageBar.hasClass('showFlash'), 'messageBar is visible');\n      assert.equal(messageBar.find('p').text(), 'Your Envoy iPad app requires a critical update. Update to avoid an interruption in service.', 'copy is right');\n      click(messageBar.find('.dismiss'));\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar.static').hasClass('hideFlash'), 'message bar is gone');\n    });\n  });\n\n  qunit.test('it doesnt display the ipad outdated bar if update is not available', function (assert) {\n    assert.expect(1);\n\n    loc = FactoryGuy['default'].build('location', { company: {\n        id: 1\n      }, installed_version: '1.2.5', current_version: '1.2.5' })['location'];\n\n    visit('/');\n\n    andThen(function () {\n      assert.ok(find('.messageBar.static').hasClass('hideFlash'), 'message bar not shown');\n    });\n  });\n\n});","define('garaje/tests/acceptance/outdated-ipad-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/outdated-ipad-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/outdated-ipad-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/pre-registration-feature-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'pretender', 'ember-data-factory-guy', 'garaje/tests/helpers/parse-post-data'], function (Ember, qunit, startApp, stubConfirm, Pretender, FactoryGuy, parsePostData) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Pre-Registration Feature', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        company: {\n          id: 1\n        },\n        pre_registration_enabled: false,\n        cc_receptionist_enabled: false,\n        pre_registration_link: 'https://envoy.co/invites/token_a',\n        security_desk_link: 'https://envoy.co/security/token_a'\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            company: {\n              id: 1,\n              onboarding_status: 'complete'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('users that dont have access to pre-registration should see a splash screen that prompts them to upgrade, taking them to the premium subscribe page', function (assert) {\n    assert.expect(3);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      assert.ok(find('a:contains(Pre-Registration)').hasClass('active'), 'Pre-registration is lit up');\n      assert.ok(find('.btn:contains(Upgrade to Premium)').length, 'Splash screen upgrade button exists');\n    });\n\n    click('.btn:contains(Upgrade to Premium)');\n\n    andThen(function () {\n      assert.ok(find('.js-subscribe-header:contains(Subscribing to Premium Yearly)').length, 'we really are on the subscribe page');\n    });\n  });\n\n  qunit.test('users that have access to pre-registration but that dont have the feature enabled should see a splash screen, and clicking on the enable pre-registration button should hide the splash screen and enable the feature', function (assert) {\n    assert.expect(5);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['pre_registration', 'billing']\n        }\n      }];\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.pre_registration_enabled, 'Pre-registration is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      assert.ok(find('.js-pre-registration-enable-button').length, 'Splash screen enable button exists');\n      click('.js-pre-registration-enable-button');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('.js-pre-registration').prop('checked'), 'Pre-registration is on');\n      assert.ok(find('a:contains(Pre-Registration)').hasClass('active'), 'Pre-registration title is lit up');\n    });\n  });\n\n  qunit.test('users that disable pre-registration should not see the splash screen pop up instantly, but if they navigate away, then return to pre-registration, they should see the splash screen', function (assert) {\n    assert.expect(6);\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['pre_registration']\n        }\n      }];\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      assert.ok(find('.btn:contains(Enable pre-registration)').length, 'Splash screen enable button exists');\n      click('.btn:contains(Enable pre-registration)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('.js-pre-registration').prop('checked'), 'Pre-registration is on');\n    });\n\n    click('.js-pre-registration');\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(!find('.btn:contains(Enable pre-registration)').length, 'User should not see the splash screen');\n    });\n\n    visit('/settings/location');\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      assert.ok(find('.btn:contains(Enable pre-registration)').length, 'User should see the splash screen');\n    });\n  });\n\n  qunit.test('toggling pre-registration/notify receptionist', function (assert) {\n    assert.expect(7);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['pre_registration']\n        }\n      }];\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.pre_registration_enabled, 'Pre-registration is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      assert.ok(find('.js-emptyState .js-pre-registration-enable-button').length, 'Splash screen enable button exists');\n      click('.js-emptyState .js-pre-registration-enable-button');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n\n      assert.ok(find('.js-pre-registration').prop('checked'), 'Pre-registration is on');\n      assert.ok(!find('.js-notify-receptionist').prop('checked'), 'Notify receptionist is off');\n    });\n\n    andThen(function () {\n\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.cc_receptionist_enabled, 'Notify receptionist is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.js-notify-receptionist');\n    });\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('regenerating employee invitation link', function (assert) {\n    assert.expect(10);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['pre_registration']\n        }\n      }];\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.pre_registration_enabled, 'Pre-registration is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      assert.ok(find('.btn:contains(Enable pre-registration)').length, 'Splash screen enable button exists');\n      click('.btn:contains(Enable pre-registration)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-pre-registration a:first').attr('href'), 'https://envoy.co/invites/token_a', 'current employee invitation link');\n      assert.equal(find('.js-pre-registration a:first').html(), 'https://envoy.co/invites/token_a', 'current employee invitation link text');\n      stubConfirm['default'](assert, false, function () {\n        click('.js-pre-registration a:contains(Regenerate)');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-pre-registration a:first').attr('href'), 'https://envoy.co/invites/token_a', 'employee invitation link not updated');\n      assert.equal(find('.js-pre-registration a:first').html(), 'https://envoy.co/invites/token_a', 'employee invitation link text not updated');\n    });\n\n    andThen(function () {\n      server.register('POST', '/api/v1/locations/:id/generate_pre_registration_link', function (req) {\n        return [200, { 'Content-Type': 'application/json' }, { pre_registration_link: 'https://envoy.co/invites/token_b' }];\n      });\n      stubConfirm['default'](assert, true, function () {\n        click('.js-pre-registration a:contains(Regenerate)');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-pre-registration a:first').attr('href'), 'https://envoy.co/invites/token_b', 'employee invitation link updated');\n      assert.equal(find('.js-pre-registration a:first').html(), 'https://envoy.co/invites/token_b', 'employee invitation link text updated');\n    });\n  });\n\n  qunit.test('regenerating security desk link', function (assert) {\n    assert.expect(10);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['pre_registration']\n        }\n      }];\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.pre_registration_enabled, 'Pre-registration is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      assert.ok(find('.btn:contains(Enable pre-registration)').length, 'Splash screen enable button exists');\n      click('.btn:contains(Enable pre-registration)');\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-security-desk a:first').attr('href'), 'https://envoy.co/security/token_a', 'current security desk link');\n      assert.equal(find('.js-security-desk a:first').html(), 'https://envoy.co/security/token_a', 'current security desk link text');\n      stubConfirm['default'](assert, false, function () {\n        click('.js-security-desk a:contains(Regenerate)');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-security-desk a:first').attr('href'), 'https://envoy.co/security/token_a', 'security desk link not updated');\n      assert.equal(find('.js-security-desk a:first').html(), 'https://envoy.co/security/token_a', 'security desk link text not updated');\n    });\n\n    andThen(function () {\n      server.register('POST', '/api/v1/locations/:id/generate_security_desk_link', function (req) {\n        return [200, { 'Content-Type': 'application/json' }, { security_desk_link: 'https://envoy.co/security/token_b' }];\n      });\n      stubConfirm['default'](assert, true, function () {\n        click('.js-security-desk a:contains(Regenerate)');\n      });\n    });\n\n    andThen(function () {\n      assert.equal(find('.js-security-desk a:first').attr('href'), 'https://envoy.co/security/token_b', 'security desk link updated');\n      assert.equal(find('.js-security-desk a:first').html(), 'https://envoy.co/security/token_b', 'security desk link text updated');\n    });\n  });\n\n  qunit.test('updating and previewing invitation note, sending a test email', function (assert) {\n    assert.expect(8);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['pre_registration']\n        }\n      }];\n    });\n\n    visit('/settings/pre-registration');\n\n    var htmlResponse;\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.pre_registration_enabled, 'Pre-registration is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      assert.ok(find('.btn:contains(Enable pre-registration)').length, 'Splash screen enable button exists');\n      click('.btn:contains(Enable pre-registration)');\n    });\n\n    andThen(function () {\n      assert.equal($('textarea').val(), '', 'empty invitation note');\n\n      server.register('POST', '/api/v1/locations/1/invite_preview', function () {\n        return [201, { 'Content-Type': 'application/json' }, {\n          body: 'markupResponse',\n          subject: 'hello'\n        }];\n      });\n\n      fillIn('textarea', '**This is an example pre-registration invite you can send visitors**');\n      click('div:contains(Preview email)');\n    });\n\n    andThen(function () {\n      var preRegController = App.__container__.lookup('controller:pre-registration');\n      assert.equal(preRegController.get('previewEmailObject.body'), 'markupResponse', 'iframe srcdoc has same html as response');\n      assert.equal($('.js-email-preview-subject').text().trim(), 'hello', 'email subject is correct');\n\n      server.register('POST', '/api/v1/locations/1/send_invite_preview', function () {\n        return [201, { 'Content-Type': 'application/json' }, 'a4d798bf065bf0dbe269215e'];\n      });\n\n      click('.sendTestPreRegistrationEmail');\n    });\n\n    click('div:contains(Edit text)');\n\n    andThen(function () {\n      //clicking back and forth to test that another request has not been sent to the server if the markdown hasn't changed\n      server.register('POST', '/api/v1/locations/1/invite_preview', function (req) {\n        assert.ok(req, 'THIS SHOULD NOT BE GETTING CALLED');\n        return [201, { 'Content-Type': 'application/json' }, {\n          body: 'markupResponse',\n          subject: 'hello'\n        }];\n      });\n\n      click('div:contains(Preview email)');\n    });\n\n    click('div:contains(Edit text)');\n\n    andThen(function () {\n      assert.equal($('textarea').val(), '**This is an example pre-registration invite you can send visitors**', 'textArea has right message');\n\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.equal(location.pre_registration_notes, '**This is an example pre-registration invite you can send visitors**', 'request has right notes value');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('button:contains(Save email text)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n    });\n  });\n\n  qunit.test('standard users that don\\'t have access to pre-registration and follow the path to upgrade should be brought back to pre-registration upon completion', function (assert) {\n    assert.expect(2);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['billing']\n        }\n      }];\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.ok(location.pre_registration_enabled, 'Pre-registration is on');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      click('.btn:contains(Upgrade to Premium)');\n    });\n\n    andThen(function () {\n\n      window.Stripe = {\n        setPublishableKey: Ember['default'].K,\n        card: {\n          createToken: function createToken(form, callback) {\n            callback(200, {\n              id: 'token'\n            });\n          }\n        }\n      };\n\n      server.register('PUT', '/api/v1/subscription', function (req) {\n        var subscription = parsePostData['default'](req.requestBody).subscription;\n\n        return [200, { 'Content-Type': 'application/json' }, {\n          subscription: { \"trial_end_date\": \"2015-03-24T22:20:58.752Z\", \"plan\": \"premium\", \"period\": \"yearly\", \"quantity\": 1, \"delinquent\": false, \"last4\": \"4242\", \"brand\": \"Visa\", \"expiry_month\": 10, \"expiry_year\": 2015, \"features\": [\"multi_location\", \"custom_badge\", \"eventbrite\", \"pre_registration\", \"employees\", \"location_switcher\", \"boss\", \"billing\"], \"coupon\": null, \"period_start\": 1427840459, \"period_end\": 1459462859, \"credit_balance\": 0.0 }\n        }];\n      });\n\n      fillIn('.js-cc-number', '4242424242424242');\n      fillIn('.js-cc-exp', '12/19');\n      fillIn('.js-cc-cvc', '123');\n\n      click('.btn:contains(Subscribe to Premium Yearly)');\n    });\n\n    andThen(function () {\n      assert.ok(find('.messageBar').hasClass('success'));\n      assert.ok(find('.btn:contains(Enable pre-registration)').length, 'We are on the pre-registration page ready to go');\n    });\n  });\n\n});","define('garaje/tests/acceptance/pre-registration-feature-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/pre-registration-feature-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/pre-registration-feature-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/premium-feature-label-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy', 'garaje/tests/fixtures/badge'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Premium Feature Label', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme'\n      })['company'];\n\n      var admin = FactoryGuy['default'].build('admin', {\n        name: 'Larry Gadea',\n        email: 'larry@caspida.com'\n      })['admin'];\n\n      var badge = FactoryGuy['default'].build('badge', { custom_field1: 'none', custom_field2: 'none' })['badge'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'NY',\n        company: {\n          id: company.id\n        },\n        config: {\n          id: 1\n        },\n        printer: {\n          id: 1\n        }\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'SF',\n        company: {\n          id: company.id\n        },\n        primary: true,\n        badge: {\n          id: badge.id\n        },\n        config: {\n          id: 2\n        },\n        printer: {\n          id: 2\n        }\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/locations', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { locations: locations }];\n        });\n        this.get('/api/v1/companies/' + company.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n        this.get('/api/v1/configs/:id', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            config: {\n              id: request.params.id,\n              location_id: request.params.id,\n              integrations: [],\n              slideshows: []\n            }\n          }];\n        });\n        this.get('/api/v1/printers/:id', function (request) {\n          var printer = {\n            id: request.params.id,\n            ip: '123.123.123.123',\n            enabled: true\n          };\n          return [200, { 'Content-Type': 'application/json' }, { printer: printer }];\n        });\n        this.get('/api/v1/badges/' + badge.id, function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { badge: badge }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('users with a premium feature label enabled should see the premium label', function (assert) {\n    assert.expect(2);\n\n    var cssDiv;\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: ['premium_feature_bar']\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.ok(find('.js-h4-a-custom-css-title').hasClass('premiumFeature'));\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      assert.ok(find('.js-span-pre-registration-label').hasClass('premiumFeature'));\n    });\n  });\n\n  qunit.test('users without a premium feature label should not see the premium label', function (assert) {\n    assert.expect(2);\n\n    var cssDiv;\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: []\n        }\n      }];\n    });\n\n    visit('/settings/badge');\n\n    andThen(function () {\n      assert.ok(!find('.js-h4-a-custom-css-title').hasClass('premiumFeature'));\n    });\n\n    visit('/settings/pre-registration');\n\n    andThen(function () {\n      assert.ok(!find('.js-span-pre-registration-label').hasClass('premiumFeature'));\n    });\n  });\n\n});","define('garaje/tests/acceptance/premium-feature-label-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/premium-feature-label-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/premium-feature-label-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/settings-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, locations;\n\n  qunit.module('Acceptance: Settings', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      var company = FactoryGuy['default'].build('company', {\n        name: 'Acme',\n        email: 'foo@example.com',\n        onboarding_status: 'complete'\n      })['company'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        name: 'NY',\n        company: {\n          id: 1\n        },\n        disabled: true\n      })['location'], FactoryGuy['default'].build('location', {\n        name: 'SF',\n        company: {\n          id: 1\n        },\n        primary: true\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v1/entries/calendar', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { \"calendar\": [] }];\n        });\n\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: ['billing']\n            }\n          }];\n        });\n\n        this.get('/api/v1/locations', function (request) {\n          return [200, { \"Content-Type\": \"application/json\" }, { locations: locations }];\n        });\n\n        this.get('/api/v1/companies/1', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n\n        this.get('/api/v1/invites', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            invites: []\n          }];\n        });\n\n        this.get('/api/v1/entries', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            entries: []\n          }];\n        });\n\n        this.get('/api/v1/plans', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plans: [{\n              id: 'standard',\n              name: 'Standard',\n              monthly_price: 119,\n              yearly_price: 99\n            }, {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }, {\n              id: 'enterprise',\n              name: 'Enterprise',\n              yearly_price: 499\n            }]\n          }];\n        });\n\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('redirected to primary location', function (assert) {\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      assert.equal(find('.company-name').val(), 'Acme');\n      assert.equal(find('.location-name').val(), 'SF');\n    });\n  });\n\n  qunit.test('redirected to first location, if primary doesnt exist', function (assert) {\n    locations[1].primary = false;\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      assert.equal(find('.company-name').val(), '');\n      assert.equal(find('.location-name').val(), 'NY');\n    });\n  });\n\n  // test('doesnt redirect to location if no locations exists', function(assert) {\n  //   locations = [];\n\n  //   visit('/');\n  //   click('a:contains(Settings)');\n\n  //   andThen(function() {\n  //     assert.equal(currentPath(), 'protected.settings.location.index');\n  //   });\n  // });\n\n  qunit.test('non-master locations (without billing feature flag) should not see \"Billing\" in the Settings sub-nav and should be redirected to unauthorized if they try to access billing routes', function (assert) {\n    assert.expect(4);\n\n    server.register('GET', '/api/v1/subscription', function () {\n      return [200, { 'Content-Type': 'application/json' }, {\n        subscription: {\n          features: []\n        }\n      }];\n    });\n\n    visit('/dashboard');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      assert.ok(!find('a:contains(Billing)').length, 'Billing is not showing up');\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.unauthorized', 'the user was redirected to the unauthorized route');\n    });\n\n    click('a:contains(Settings)');\n    visit('/settings/billing/plans');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.unauthorized', 'the user was redirected to the unauthorized route');\n    });\n\n    click('a:contains(Settings)');\n    visit('/settings/billing/subscribe?period=yearly&plan=premium');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.unauthorized', 'the user was redirected to the unauthorized route');\n    });\n  });\n\n  qunit.test('if you have the billing feature flag, you should see billing in the subnav and be able to access those routes', function (assert) {\n    assert.expect(4);\n\n    visit('/');\n    click('a:contains(Settings)');\n\n    andThen(function () {\n      assert.ok(find('a:contains(Billing)').length, 'Billing is showing up');\n    });\n\n    visit('/settings/billing');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.billing.index', 'taken to the correct location');\n    });\n\n    visit('/settings/billing/plans');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.billing.plans', 'taken to the correct location');\n    });\n\n    visit('/settings/billing/subscribe?period=yearly&plan=premium');\n\n    andThen(function () {\n      assert.equal(currentPath(), 'protected.settings.billing.subscribe', 'taken to the correct location');\n    });\n  });\n\n});","define('garaje/tests/acceptance/settings-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/settings-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/settings-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/acceptance/watchlist-notifications-test', ['ember', 'qunit', 'garaje/tests/helpers/start-app', 'garaje/tests/helpers/stub-confirm', 'pretender', 'ember-data-factory-guy'], function (Ember, qunit, startApp, stubConfirm, Pretender, FactoryGuy) {\n\n  'use strict';\n\n  var App, server, locations, company;\n\n  qunit.module('Acceptance: Watchlist Notifications', {\n    beforeEach: function beforeEach() {\n      App = startApp['default']();\n      company = FactoryGuy['default'].build('company', {\n        id: 1,\n        slack_team_name: 'Envoy',\n        slack_connected: true,\n        hipchat_connected: true\n      })['company'];\n\n      locations = [FactoryGuy['default'].build('location', {\n        id: 1,\n        name: 'SF',\n        company: {\n          id: 1\n        },\n        email_notification_enabled: false,\n        sms_notification_enabled: false,\n        slack_notification_enabled: true,\n        hipchat_notification_enabled: true\n      })['location']];\n\n      server = new Pretender['default'](function () {\n        this.get('/api/v2/integrations/enabled', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            data: []\n          }];\n        });\n        this.get('/api/v1/subscription', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            subscription: {\n              trial_end_date: new Date(),\n              features: []\n            }\n          }];\n        });\n        this.get('/api/v1/companies/1', function () {\n          return [200, { 'Content-Type': 'application/json' }, { company: company }];\n        });\n\n        this.get('/api/v1/locations', function () {\n          return [200, { 'Content-Type': 'application/json' }, { locations: locations }];\n        });\n        this.get('/api/v1/admins/me', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            admin: {\n              id: 1,\n              email: 'foo@example.com'\n            }\n          }];\n        });\n        this.get('/api/v1/employees', function (request) {\n          return [200, { 'Content-Type': 'application/json' }, {\n            employees: [],\n            meta: {\n              total: 1\n            }\n          }];\n        });\n        this.get('/api/v1/plans/premium', function () {\n          return [200, { 'Content-Type': 'application/json' }, {\n            plan: {\n              id: 'premium',\n              name: 'Premium',\n              monthly_price: 299,\n              yearly_price: 249\n            }\n          }];\n        });\n      });\n\n      server.prepareBody = function (body) {\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };\n      /*\n      server.prepareBody = function(body){\n        return body ? JSON.stringify(body) : '{\"error\": \"not found\"}';\n      };*/\n    },\n    afterEach: function afterEach() {\n      Ember['default'].run(App, 'destroy');\n      server.shutdown();\n    }\n  });\n\n  qunit.test('update watchlist', function (assert) {\n    assert.expect(8);\n\n    visit('/settings/notifications');\n\n    andThen(function () {\n      assert.ok(find('.js-enable-watchlist'), 'Enable watchlist button present');\n    });\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.equal(location.watchlist.list, 'Johne Doe\\nfoo@bar.com');\n        assert.equal(location.watchlist.notify_email, 'eggs@spam.com');\n        assert.equal(location.watchlist.notify_phone_number, '+14159353143');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n    });\n\n    click('.js-watchlist-enable');\n    fillIn('.js-watchlist-textarea', 'Johne Doe\\nfoo@bar.com');\n    fillIn('.js-watchlist-email', 'eggs@spam.com');\n    fillIn('.js-watchlist-phone-number', '+14159353143');\n    click('.js-watchlist-save');\n\n    andThen(function () {\n      server.register('PUT', '/api/v1/locations/1', function (req) {\n        var location = JSON.parse(req.requestBody).location;\n        location.id = 1;\n        assert.equal(location.watchlist.list, 'foo@bar.com');\n        assert.equal(location.watchlist.notify_email, 'john@doe.com');\n        assert.equal(location.watchlist.notify_phone_number, '');\n        return [200, { 'Content-Type': 'application/json' }, { location: location }];\n      });\n\n      assert.ok(find('.js-watchlist-edit'), 'Edit watchlist button present');\n    });\n\n    click('.js-watchlist-edit');\n\n    fillIn('.js-watchlist-textarea', 'foo@bar.com');\n    fillIn('.js-watchlist-email', 'john@doe.com');\n    fillIn('.js-watchlist-phone-number', '');\n    click('.js-watchlist-save');\n  });\n\n});","define('garaje/tests/acceptance/watchlist-notifications-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - acceptance');\n  QUnit.test('acceptance/watchlist-notifications-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'acceptance/watchlist-notifications-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/application.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/application.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/application.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/employees-filter.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/employees-filter.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/employees-filter.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/entry.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/entry.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/entry.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/google-app.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/google-app.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/google-app.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/ifttt-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/ifttt-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/ifttt-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/invite.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/invite.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/invite.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/leaderboard.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/leaderboard.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/leaderboard.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/okta-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/okta-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/okta-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/one-login.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/one-login.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/one-login.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/salesforce-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/salesforce-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/salesforce-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/v2.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/v2.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/v2.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/adapters/zapier-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - adapters');\n  QUnit.test('adapters/zapier-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'adapters/zapier-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/analytics/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - analytics');\n  QUnit.test('analytics/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'analytics/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/analytics/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - analytics');\n  QUnit.test('analytics/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'analytics/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/app.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - .');\n  QUnit.test('app.js should pass jshint', function(assert) { \n    assert.ok(true, 'app.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/authenticators/application.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - authenticators');\n  QUnit.test('authenticators/application.js should pass jshint', function(assert) { \n    assert.ok(true, 'authenticators/application.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/authorizers/application.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - authorizers');\n  QUnit.test('authorizers/application.js should pass jshint', function(assert) { \n    assert.ok(true, 'authorizers/application.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/authorizers/oauth2-access-token.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - authorizers');\n  QUnit.test('authorizers/oauth2-access-token.js should pass jshint', function(assert) { \n    assert.ok(true, 'authorizers/oauth2-access-token.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/add-employee-table-row.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/add-employee-table-row.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/add-employee-table-row.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/address-input.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/address-input.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/address-input.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/admin-config/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components/admin-config');\n  QUnit.test('components/admin-config/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/admin-config/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/async-button.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/async-button.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/async-button.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/autofocus-input.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/autofocus-input.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/autofocus-input.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/avatar-image.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/avatar-image.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/avatar-image.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/box-file-picker.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/box-file-picker.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/box-file-picker.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/brush-select-zoom.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/brush-select-zoom.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/brush-select-zoom.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/calendar-grid.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/calendar-grid.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/calendar-grid.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/cc-form.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/cc-form.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/cc-form.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/checkbox-with-action.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/checkbox-with-action.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/checkbox-with-action.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/clearbit-image.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/clearbit-image.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/clearbit-image.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/color-picker.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/color-picker.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/color-picker.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/configurator-option-group.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/configurator-option-group.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/configurator-option-group.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/configurator-option.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/configurator-option.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/configurator-option.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/csv-parse.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/csv-parse.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/csv-parse.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/current-subscription.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/current-subscription.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/current-subscription.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/custom-field.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/custom-field.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/custom-field.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/day-cell.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/day-cell.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/day-cell.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/dropdown-field.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/dropdown-field.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/dropdown-field.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/dropdown-option.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/dropdown-option.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/dropdown-option.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/email-input.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/email-input.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/email-input.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/employee-csv-uploader.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/employee-csv-uploader.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/employee-csv-uploader.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/entry-feed-item.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/entry-feed-item.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/entry-feed-item.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/envoy-2up-calendar.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/envoy-2up-calendar.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/envoy-2up-calendar.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/envoy-calendar.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/envoy-calendar.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/envoy-calendar.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/envoy-sortable.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/envoy-sortable.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/envoy-sortable.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/file-upload.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/file-upload.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/file-upload.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/flash-message.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/flash-message.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/flash-message.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/google-maps.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/google-maps.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/google-maps.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/granular-address-lookup-fields-settings.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/granular-address-lookup-fields-settings.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/granular-address-lookup-fields-settings.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/granular-address-lookup-fields.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/granular-address-lookup-fields.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/granular-address-lookup-fields.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/gravatar-image.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/gravatar-image.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/gravatar-image.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/i18n-config/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components/i18n-config');\n  QUnit.test('components/i18n-config/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/i18n-config/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/inline-loading-spinner.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/inline-loading-spinner.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/inline-loading-spinner.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/invite-feed-item.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/invite-feed-item.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/invite-feed-item.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/ipad-custom-fields.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/ipad-custom-fields.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/ipad-custom-fields.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/labeled-input.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/labeled-input.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/labeled-input.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/leaderboard-card.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/leaderboard-card.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/leaderboard-card.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/load-more.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/load-more.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/load-more.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/location-info-w-map.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/location-info-w-map.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/location-info-w-map.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/location-info.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/location-info.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/location-info.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/logo-uploader.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/logo-uploader.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/logo-uploader.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/mapped-field.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/mapped-field.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/mapped-field.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nda-config/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components/nda-config');\n  QUnit.test('components/nda-config/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nda-config/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nf-graph.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/nf-graph.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nf-graph.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nf-hover-label-lower-text.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/nf-hover-label-lower-text.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nf-hover-label-lower-text.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nf-hover-label-lower.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/nf-hover-label-lower.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nf-hover-label-lower.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nf-hover-label-text.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/nf-hover-label-text.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nf-hover-label-text.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nf-hover-label.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/nf-hover-label.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nf-hover-label.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nf-rect-box.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/nf-rect-box.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nf-rect-box.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nf-vertical-line-partial.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/nf-vertical-line-partial.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nf-vertical-line-partial.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/nf-x-axis.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/nf-x-axis.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/nf-x-axis.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/onboarding-flash-message.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/onboarding-flash-message.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/onboarding-flash-message.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/onboarding-header.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/onboarding-header.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/onboarding-header.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/payment-row.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/payment-row.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/payment-row.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/phone-input.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/phone-input.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/phone-input.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/plan-button.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/plan-button.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/plan-button.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/plan-ledger.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/plan-ledger.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/plan-ledger.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/pre-registration-email-preview.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/pre-registration-email-preview.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/pre-registration-email-preview.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/printer-config/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components/printer-config');\n  QUnit.test('components/printer-config/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/printer-config/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/receptionist-config/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components/receptionist-config');\n  QUnit.test('components/receptionist-config/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/receptionist-config/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/sign-out-dropdown.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/sign-out-dropdown.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/sign-out-dropdown.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/sortable-item.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/sortable-item.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/sortable-item.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/stand-description.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/stand-description.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/stand-description.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/tokenized-box.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/tokenized-box.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/tokenized-box.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/tokenized-button.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/tokenized-button.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/tokenized-button.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/up-to.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/up-to.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/up-to.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/components/week-row.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - components');\n  QUnit.test('components/week-row.js should pass jshint', function(assert) { \n    assert.ok(true, 'components/week-row.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/application.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/application.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/application.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/badge-enable.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/badge-enable.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/badge-enable.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/badge.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/badge.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/badge.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/billing.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/billing.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/billing.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/dashboard.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/dashboard.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/dashboard.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/entry.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/entry.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/entry.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/ipad.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/ipad.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/ipad.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/location.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/location.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/location.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/login.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/login.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/login.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/new-location.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/new-location.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/new-location.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/notifications.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/notifications.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/notifications.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/plans.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/plans.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/plans.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/pre-registered.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/pre-registered.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/pre-registered.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/pre-registration-upgrade.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/pre-registration-upgrade.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/pre-registration-upgrade.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/pre-registration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/pre-registration.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/pre-registration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/controllers/subscribe.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - controllers');\n  QUnit.test('controllers/subscribe.js should pass jshint', function(assert) { \n    assert.ok(true, 'controllers/subscribe.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/customize/accent-color/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - customize/accent-color');\n  QUnit.test('customize/accent-color/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'customize/accent-color/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/customize/company-logo/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - customize/company-logo');\n  QUnit.test('customize/company-logo/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'customize/company-logo/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/customize/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - customize');\n  QUnit.test('customize/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'customize/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/customize/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - customize');\n  QUnit.test('customize/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'customize/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/customize/slideshow-images/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - customize/slideshow-images');\n  QUnit.test('customize/slideshow-images/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'customize/slideshow-images/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/customize/welcome-image/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - customize/welcome-image');\n  QUnit.test('customize/welcome-image/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'customize/welcome-image/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/employee/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - employee');\n  QUnit.test('employee/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'employee/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/employee/model.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - employee');\n  QUnit.test('employee/model.js should pass jshint', function(assert) { \n    assert.ok(true, 'employee/model.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/employee/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - employee');\n  QUnit.test('employee/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'employee/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/employees/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - employees');\n  QUnit.test('employees/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'employees/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/employees/index/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - employees/index');\n  QUnit.test('employees/index/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'employees/index/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/employees/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - employees');\n  QUnit.test('employees/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'employees/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/factories/company', ['ember-data-factory-guy'], function (FactoryGuy) {\n\n  'use strict';\n\n  FactoryGuy['default'].define('company', {\n    sequences: {\n      companyName: function companyName(num) {\n        return 'Company #' + num;\n      }\n    },\n\n    'default': {\n      name: FactoryGuy['default'].generate('companyName'),\n      onboarding_status: 'complete',\n      gtalk_enabed: false\n    }\n  });\n\n});","define('garaje/tests/factories/company.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - factories');\n  QUnit.test('factories/company.js should pass jshint', function(assert) { \n    assert.ok(true, 'factories/company.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/factories/config', ['ember-data-factory-guy'], function (FactoryGuy) {\n\n  'use strict';\n\n  FactoryGuy['default'].define('config', {\n    'default': {\n      integrations: [],\n      slideshows: []\n    }\n  });\n\n});","define('garaje/tests/factories/config.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - factories');\n  QUnit.test('factories/config.js should pass jshint', function(assert) { \n    assert.ok(true, 'factories/config.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/factories/location', ['ember-data-factory-guy'], function (FactoryGuy) {\n\n  'use strict';\n\n  FactoryGuy['default'].define('location', {\n    sequences: {\n      locationName: function locationName(num) {\n        return 'Location #' + num;\n      }\n    },\n\n    'default': {\n      name: FactoryGuy['default'].generate('locationName'),\n      update_available: false,\n      locale: 'en',\n      company: FactoryGuy['default'].belongsTo('company'),\n      config: FactoryGuy['default'].belongsTo('config'),\n      printer: FactoryGuy['default'].belongsTo('printer'),\n      badge: FactoryGuy['default'].belongsTo('badge')\n    }\n  });\n\n});","define('garaje/tests/factories/location.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - factories');\n  QUnit.test('factories/location.js should pass jshint', function(assert) { \n    assert.ok(true, 'factories/location.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/factories/printer', ['ember-data-factory-guy'], function (FactoryGuy) {\n\n  'use strict';\n\n  FactoryGuy['default'].define('printer', {\n    'default': {}\n  });\n\n});","define('garaje/tests/factories/printer.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - factories');\n  QUnit.test('factories/printer.js should pass jshint', function(assert) { \n    assert.ok(true, 'factories/printer.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/fixtures/admin', ['exports', 'ember-data-factory-guy'], function (exports, FactoryGuy) {\n\n  'use strict';\n\n  FactoryGuy['default'].define('admin', {\n    sequences: {\n      adminEmail: function adminEmail(num) {\n        return 'larry-' + num + '@example.com';\n      }\n    },\n\n    'default': {\n      name: 'Larry Gadea',\n      email: FactoryGuy['default'].generate('adminEmail')\n    }\n  });\n\n  exports['default'] = {};\n\n});","define('garaje/tests/fixtures/admin.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - fixtures');\n  QUnit.test('fixtures/admin.js should pass jshint', function(assert) { \n    assert.ok(true, 'fixtures/admin.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/fixtures/badge', ['exports', 'ember-data-factory-guy'], function (exports, FactoryGuy) {\n\n  'use strict';\n\n  FactoryGuy['default'].define('badge', {\n    sequences: {},\n\n    'default': {\n      branding: 'logo',\n      photo: true,\n      custom_field1: 'field Your Company',\n      custom_field2: 'field Your Car',\n\n      custom_field1_label_enabled: true,\n      custom_field2_label_enabled: true,\n\n      time_of_entry_enabled: false,\n\n      custom_message: 'siong is awesome',\n      css: 'body {}',\n      default_css: 'body {}',\n      default_html: '<div></div>',\n      sample_photo_path: '/sample_badge_photo.png'\n    }\n  });\n\n  exports['default'] = {};\n\n});","define('garaje/tests/fixtures/badge.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - fixtures');\n  QUnit.test('fixtures/badge.js should pass jshint', function(assert) { \n    assert.ok(true, 'fixtures/badge.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/fixtures/employee', ['exports', 'ember-data-factory-guy'], function (exports, FactoryGuy) {\n\n  'use strict';\n\n  FactoryGuy['default'].define('employee', {\n    sequences: {\n      employeeEmail: function employeeEmail(num) {\n        return 'alan-' + num + '@example.com';\n      },\n      employeeName: function employeeName(num) {\n        return 'User' + num;\n      },\n      phoneNumber: function phoneNumber(num) {\n        return '' + num + num + num + '-779-5852';\n      }\n    },\n\n    'default': {\n      name: FactoryGuy['default'].generate('employeeName'),\n      email: FactoryGuy['default'].generate('employeeEmail'),\n      phoneNumber: FactoryGuy['default'].generate('phoneNumber'),\n      ccEmployee: false\n    }\n  });\n\n  exports['default'] = {};\n\n});","define('garaje/tests/fixtures/employee.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - fixtures');\n  QUnit.test('fixtures/employee.js should pass jshint', function(assert) { \n    assert.ok(true, 'fixtures/employee.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/fixtures/okta-integration', ['exports', 'ember-data-factory-guy'], function (exports, FactoryGuy) {\n\n  'use strict';\n\n  function date() {\n    return new Date();\n  }\n\n  FactoryGuy['default'].define('okta-integration', {\n    sequences: {\n      token: function token(num) {\n        return num + 'ab-' + num + '-cd';\n      }\n    },\n\n    'default': {\n      apiKey: FactoryGuy['default'].generate('token'),\n      enabled: true,\n      createdAt: date().toISOString(),\n      domain: 'envoy.okta.com',\n      company: FactoryGuy['default'].belongsTo('company')\n    }\n  });\n\n  exports['default'] = {};\n\n});","define('garaje/tests/fixtures/okta-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - fixtures');\n  QUnit.test('fixtures/okta-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'fixtures/okta-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/fixtures/one-login', ['exports', 'ember-data-factory-guy'], function (exports, FactoryGuy) {\n\n  'use strict';\n\n  function date() {\n    return new Date();\n  }\n\n  FactoryGuy['default'].define('one-login', {\n    sequences: {\n      apiKey: function apiKey(num) {\n        return num + 'ab-' + num + '-cd';\n      }\n    },\n\n    'default': {\n      apiKey: FactoryGuy['default'].generate('apiKey'),\n      enabled: true,\n      createdAt: date().toISOString(),\n      company: FactoryGuy['default'].belongsTo('company')\n    }\n  });\n\n  exports['default'] = {};\n\n});","define('garaje/tests/fixtures/one-login.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - fixtures');\n  QUnit.test('fixtures/one-login.js should pass jshint', function(assert) { \n    assert.ok(true, 'fixtures/one-login.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/array-to-sentence.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/array-to-sentence.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/array-to-sentence.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/capitalize-word.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/capitalize-word.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/capitalize-word.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/ember-simple-auth', ['exports', 'ember-simple-auth/authenticators/test'], function (exports, Test) {\n\n  'use strict';\n\n  exports.authenticateSession = authenticateSession;\n  exports.currentSession = currentSession;\n  exports.invalidateSession = invalidateSession;\n\n  var TEST_CONTAINER_KEY = 'authenticator:test';\n\n  function ensureAuthenticator(app, container) {\n    var authenticator = container.lookup(TEST_CONTAINER_KEY);\n    if (!authenticator) {\n      app.register(TEST_CONTAINER_KEY, Test['default']);\n    }\n  }\n\n  function authenticateSession(app, sessionData) {\n    var container = app.__container__;\n\n    var session = container.lookup('service:session');\n    ensureAuthenticator(app, container);\n    session.authenticate(TEST_CONTAINER_KEY, sessionData);\n    return wait();\n  }\n\n  ;\n\n  function currentSession(app) {\n    return app.__container__.lookup('service:session');\n  }\n\n  ;\n\n  function invalidateSession(app) {\n    var session = app.__container__.lookup('service:session');\n    if (session.get('isAuthenticated')) {\n      session.invalidate();\n    }\n    return wait();\n  }\n\n  ;\n\n});","define('garaje/tests/helpers/fill-in-with-key-press', ['exports'], function (exports) {\n\n  'use strict';\n\n  // normal fillIn doesn't fire a keypres event\n  // this simulates it\n  exports['default'] = function (selector, text, eventType) {\n    eventType = eventType || 'keypress';\n    fillIn(selector, text);\n    for (var i = 0; i < text.length; i++) {\n      keyEvent(selector, eventType, text.charCodeAt(i));\n    }\n  }\n\n});","define('garaje/tests/helpers/fill-in-with-key-press.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/fill-in-with-key-press.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/fill-in-with-key-press.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/format-hour-minute.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/format-hour-minute.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/format-hour-minute.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/formatted-currency.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/formatted-currency.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/formatted-currency.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/parse-post-data', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = function (query) {\n    var initial = {};\n    query.split(\"&\").forEach(function (part) {\n      var item = part.split(\"=\");\n      var key = decodeURIComponent(item[0]);\n      initial[key] = decodeURIComponent(item[1]);\n    });\n    // post process keys to convert\n    // {'foo[bar]': 1}\n    // to\n    // {foo: {bar: 1}}\n    var result = {};\n    var regex = /(\\w+)(?:\\[(\\w+)\\])?/;\n    Object.keys(initial).forEach(function (key) {\n      var matches = regex.exec(key);\n      var resource = matches[1],\n          attribute = matches[2];\n\n      result[resource] = result[resource] || {};\n\n      if (attribute) {\n        result[resource][attribute] = initial[key];\n      } else {\n        result[resource] = initial[key];\n      }\n    });\n    return result;\n  }\n\n});","define('garaje/tests/helpers/parse-post-data.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/parse-post-data.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/parse-post-data.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/pluralized-word.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/pluralized-word.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/pluralized-word.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/register-select-helper', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = function () {\n    Ember['default'].Test.registerAsyncHelper('select', function (app, selector) {\n      for (var _len = arguments.length, texts = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n        texts[_key - 2] = arguments[_key];\n      }\n\n      var $options = app.testHelpers.findWithAssert(selector + ' option');\n\n      $options.each(function () {\n        var _this = this;\n\n        var $option = Ember['default'].$(this);\n\n        Ember['default'].run(function () {\n          _this.selected = texts.some(function (text) {\n            return $option.is(':contains(\\'' + text + '\\')');\n          });\n          $option.trigger('change');\n        });\n      });\n\n      return app.testHelpers.wait();\n    });\n  }\n\n});","define('garaje/tests/helpers/resolver', ['exports', 'ember-resolver', 'garaje/config/environment'], function (exports, Resolver, config) {\n\n  'use strict';\n\n  var resolver = Resolver['default'].create();\n\n  resolver.namespace = {\n    modulePrefix: config['default'].modulePrefix\n  };\n\n  exports['default'] = resolver;\n\n});","define('garaje/tests/helpers/resolver.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/resolver.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/resolver.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/select', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = function (selector, label) {\n    var option, value;\n\n    wait();\n    andThen(function () {\n      Ember['default'].run(function () {\n        option = findWithAssert('option:contains(' + label + ')', selector);\n        value = option.val();\n      });\n\n      return fillIn(selector, value);\n    });\n  }\n\n});","define('garaje/tests/helpers/select.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/select.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/select.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/start-app', ['exports', 'ember', 'garaje/app', 'garaje/router', 'garaje/config/environment', 'garaje/tests/helpers/ember-simple-auth'], function (exports, Ember, Application, Router, config, ember_simple_auth) {\n\n  'use strict';\n\n\n\n  exports['default'] = startApp;\n  function startApp(attrs) {\n    var application;\n\n    var attributes = Ember['default'].merge({}, config['default'].APP);\n    attributes = Ember['default'].merge(attributes, attrs); // use defaults, but you can override;\n\n    Ember['default'].run(function () {\n      application = Application['default'].create(attributes);\n      application.setupForTesting();\n      application.injectTestHelpers();\n    });\n\n    ember_simple_auth.authenticateSession(application);\n    localStorage.setItem('current_location', null);\n\n    return application;\n  }\n\n});","define('garaje/tests/helpers/start-app.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/start-app.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/start-app.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/stub-confirm', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = function (assert, returnValue, shouldBeCalled, callback) {\n    if (typeof returnValue === 'function') {\n      callback = returnValue;\n      returnValue = true;\n      shouldBeCalled = true;\n    }\n\n    if (typeof shouldBeCalled === 'function') {\n      callback = shouldBeCalled;\n      shouldBeCalled = true;\n    }\n\n    var origConfirm = window.confirm;\n    window.confirm = function (message) {\n      if (shouldBeCalled) {\n        assert.ok(true, 'confirm called');\n      } else {\n        assert.ok(false, 'confirm should not be called');\n      }\n      return returnValue;\n    };\n    callback();\n\n    // used in an integration\n    if (typeof wait === 'function') {\n      return wait().then(function () {\n        window.confirm = origConfirm;\n      });\n    } else {\n      window.confirm = origConfirm;\n    }\n  }\n\n});","define('garaje/tests/helpers/stub-confirm.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/stub-confirm.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/stub-confirm.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/stub-geocoder', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = function (isStatusOk) {\n    var data = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n    var customAssert = arguments.length <= 2 || arguments[2] === undefined ? function () {} : arguments[2];\n\n    window.google = {\n      maps: {\n        Geocoder: function Geocoder() {},\n        GeocoderStatus: {\n          OK: 'OK'\n        },\n        places: {\n          Autocomplete: function Autocomplete() {}\n        },\n        event: {\n          addListener: function addListener() {}\n        },\n        LatLng: function LatLng() {},\n        Map: function Map() {\n          return {\n            setCenter: function setCenter() {}\n          };\n        },\n        Marker: function Marker() {\n          return {\n            setPosition: function setPosition() {}\n          };\n        }\n      }\n    };\n\n    window.google.maps.Geocoder.prototype.geocode = function (options, callback) {\n      customAssert(options);\n\n      if (isStatusOk) {\n        var results = [{\n          geometry: {\n            location: {\n              lat: function lat() {\n                return data.latitude;\n              },\n              lng: function lng() {\n                return data.longitude;\n              }\n            }\n          },\n          formatted_address: data.address,\n          address_components: data.addressComponents\n        }];\n        callback(results, window.google.maps.GeocoderStatus.OK);\n      } else {\n        callback(data, false);\n      }\n    };\n  }\n\n});","define('garaje/tests/helpers/stub-geocoder.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/stub-geocoder.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/stub-geocoder.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/helpers/validate-properties', ['exports', 'ember', 'ember-qunit'], function (exports, Ember, ember_qunit) {\n\n  'use strict';\n\n  exports.testValidPropertyValues = testValidPropertyValues;\n  exports.testInvalidPropertyValues = testInvalidPropertyValues;\n\n  var run = Ember['default'].run;\n\n  function validateValues(object, propertyName, values, isTestForValid) {\n    var promise = null;\n    var validatedValues = [];\n\n    values.forEach(function (value) {\n      function handleValidation(errors) {\n        var hasErrors = object.get('errors.' + propertyName + '.firstObject');\n        if (hasErrors && !isTestForValid || !hasErrors && isTestForValid) {\n          validatedValues.push(value);\n        }\n      }\n\n      run(object, 'set', propertyName, value);\n\n      var objectPromise = null;\n      run(function () {\n        objectPromise = object.validate().then(handleValidation, handleValidation);\n      });\n\n      // Since we are setting the values in a different run loop as we are validating them,\n      // we need to chain the promises so that they run sequentially. The wrong value will\n      // be validated if the promises execute concurrently\n      promise = promise ? promise.then(objectPromise) : objectPromise;\n    });\n\n    return promise.then(function () {\n      return validatedValues;\n    });\n  }\n\n  function testPropertyValues(propertyName, values, isTestForValid, context) {\n    var validOrInvalid = isTestForValid ? 'Valid' : 'Invalid';\n    var testName = validOrInvalid + ' ' + propertyName;\n\n    ember_qunit.test(testName, function (assert) {\n      var object = this.subject();\n\n      if (context && typeof context === 'function') {\n        context(object);\n      }\n\n      // Use QUnit.dump.parse so null and undefined can be printed as literal 'null' and\n      // 'undefined' strings in the assert message.\n      var valuesString = QUnit.dump.parse(values).replace(/\\n(\\s+)?/g, '').replace(/,/g, ', ');\n      var assertMessage = 'Expected ' + propertyName + ' to have ' + validOrInvalid.toLowerCase() + ' values: ' + valuesString;\n\n      return validateValues(object, propertyName, values, isTestForValid).then(function (validatedValues) {\n        assert.deepEqual(validatedValues, values, assertMessage);\n      });\n    });\n  }\n\n  function testValidPropertyValues(propertyName, values, context) {\n    testPropertyValues(propertyName, values, true, context);\n  }\n\n  function testInvalidPropertyValues(propertyName, values, context) {\n    testPropertyValues(propertyName, values, false, context);\n  }\n\n});","define('garaje/tests/helpers/with-fallback.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - helpers');\n  QUnit.test('helpers/with-fallback.js should pass jshint', function(assert) { \n    assert.ok(true, 'helpers/with-fallback.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/import/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - import');\n  QUnit.test('import/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'import/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/import/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - import');\n  QUnit.test('import/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'import/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/initializers/current-admin-service.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - initializers');\n  QUnit.test('initializers/current-admin-service.js should pass jshint', function(assert) { \n    assert.ok(true, 'initializers/current-admin-service.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/initializers/current-location-service.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - initializers');\n  QUnit.test('initializers/current-location-service.js should pass jshint', function(assert) { \n    assert.ok(true, 'initializers/current-location-service.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/initializers/load-google-maps.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - initializers');\n  QUnit.test('initializers/load-google-maps.js should pass jshint', function(assert) { \n    assert.ok(true, 'initializers/load-google-maps.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/initializers/local-storage-service.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - initializers');\n  QUnit.test('initializers/local-storage-service.js should pass jshint', function(assert) { \n    assert.ok(true, 'initializers/local-storage-service.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/initializers/reopen-textfield.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - initializers');\n  QUnit.test('initializers/reopen-textfield.js should pass jshint', function(assert) { \n    assert.ok(true, 'initializers/reopen-textfield.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/initializers/simple-auth-oauth2-access-token-authorizer.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - initializers');\n  QUnit.test('initializers/simple-auth-oauth2-access-token-authorizer.js should pass jshint', function(assert) { \n    assert.ok(true, 'initializers/simple-auth-oauth2-access-token-authorizer.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/initializers/subscription-service.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - initializers');\n  QUnit.test('initializers/subscription-service.js should pass jshint', function(assert) { \n    assert.ok(true, 'initializers/subscription-service.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/instance-initializers/error-reporting.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - instance-initializers');\n  QUnit.test('instance-initializers/error-reporting.js should pass jshint', function(assert) { \n    assert.ok(true, 'instance-initializers/error-reporting.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/integration/components/entry-feed-item-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('entry-feed-item', 'Integration | Component | entry feed item', {\n    integration: true\n  });\n\n  ember_qunit.test('sms statuses', function (assert) {\n    this.set('entry', { smsStatus: 'disabled' });\n\n    this.render(Ember['default'].HTMLBars.template((function () {\n      return {\n        meta: {\n          'fragmentReason': {\n            'name': 'missing-wrapper',\n            'problems': ['wrong-type']\n          },\n          'revision': 'Ember@2.2.0-beta.1',\n          'loc': {\n            'source': null,\n            'start': {\n              'line': 1,\n              'column': 0\n            },\n            'end': {\n              'line': 3,\n              'column': 2\n            }\n          }\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode('\\n    ');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment('');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode('\\n  ');\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);\n          return morphs;\n        },\n        statements: [['inline', 'entry-feed-item', [], ['content', ['subexpr', '@mut', [['get', 'entry', ['loc', [null, [2, 30], [2, 35]]]]], [], []]], ['loc', [null, [2, 4], [2, 37]]]]],\n        locals: [],\n        templates: []\n      };\n    })()));\n\n    assert.ok(!this.$('.js-sms-status').length, 'no sms status');\n\n    this.set('entry.smsStatus', 'queued');\n    assert.equal(this.$('.js-sms-status').attr('src'), '/assets/images/orange-progress-small.svg');\n\n    this.set('entry.smsStatus', 'sending');\n    assert.equal(this.$('.js-sms-status').attr('src'), '/assets/images/orange-progress-small.svg');\n\n    this.set('entry.smsStatus', 'sent');\n    assert.equal(this.$('.js-sms-status').attr('src'), '/assets/images/green-check-small.svg');\n\n    this.set('entry.smsStatus', 'delivered');\n    assert.equal(this.$('.js-sms-status').attr('src'), '/assets/images/green-check-small.svg');\n\n    this.set('entry.smsStatus', 'received');\n    assert.equal(this.$('.js-sms-status').attr('src'), '/assets/images/green-check-small.svg');\n\n    this.set('entry.smsStatus', 'failed');\n    assert.equal(this.$('.js-sms-status').attr('src'), '/assets/images/red-x-small.svg');\n\n    this.set('entry.smsStatus', 'undelivered');\n    assert.equal(this.$('.js-sms-status').attr('src'), '/assets/images/red-x-small.svg');\n\n    this.set('entry.smsStatus', 'not_sent');\n    assert.equal(this.$('.js-sms-status').attr('src'), '/assets/images/gray-dash-small.svg');\n  });\n\n});","define('garaje/tests/integration/components/entry-feed-item-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - integration/components');\n  QUnit.test('integration/components/entry-feed-item-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'integration/components/entry-feed-item-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/integration/components/plan-ledger-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  var locations = undefined;\n\n  ember_qunit.moduleForComponent('plan-ledger', {\n    integration: true,\n    beforeEach: function beforeEach() {\n      locations = [{\n        name: 'Boston',\n        nameWithCompanyName: 'Acme Boston'\n      }, {\n        name: 'San Francisco',\n        nameWithCompanyName: 'Acme San Francisco'\n      }, {\n        name: 'Chicago',\n        nameWithCompanyName: 'Acme Chicago'\n      }];\n    }\n  });\n\n  var plan = {\n    name: 'Premium',\n    monthlyPrice: 119,\n    yearlyPrice: 99\n  };\n\n  var format = function format(lineItem) {\n    lineItem = Ember['default'].$(lineItem);\n    var description = lineItem.find('.js-line-item-description').text().trim();\n    var price = lineItem.find('.js-line-item-price').text().trim();\n    return description + ' ' + price;\n  };\n\n  ember_qunit.test('line items each location - monthly', function (assert) {\n    assert.expect(3);\n\n    this.setProperties({\n      coupon: null,\n      period: 'monthly',\n      plan: plan,\n      locations: locations\n    });\n\n    this.render(Ember['default'].HTMLBars.template((function () {\n      return {\n        meta: {\n          'fragmentReason': {\n            'name': 'missing-wrapper',\n            'problems': ['wrong-type']\n          },\n          'revision': 'Ember@2.2.0-beta.1',\n          'loc': {\n            'source': null,\n            'start': {\n              'line': 1,\n              'column': 0\n            },\n            'end': {\n              'line': 8,\n              'column': 2\n            }\n          }\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode('\\n    ');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment('');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode('\\n  ');\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);\n          return morphs;\n        },\n        statements: [['inline', 'plan-ledger', [], ['coupon', ['subexpr', '@mut', [['get', 'coupon', ['loc', [null, [3, 11], [3, 17]]]]], [], []], 'locations', ['subexpr', '@mut', [['get', 'locations', ['loc', [null, [4, 14], [4, 23]]]]], [], []], 'period', ['subexpr', '@mut', [['get', 'period', ['loc', [null, [5, 11], [5, 17]]]]], [], []], 'plan', ['subexpr', '@mut', [['get', 'plan', ['loc', [null, [6, 9], [6, 13]]]]], [], []]], ['loc', [null, [2, 4], [7, 6]]]]],\n        locals: [],\n        templates: []\n      };\n    })()));\n\n    var lineItems = this.$().find('.js-line-item-location');\n    assert.equal(format(lineItems[0]), 'Acme Boston at $119/mo $119.00');\n    assert.equal(format(lineItems[1]), 'Acme Chicago at $119/mo $119.00');\n    assert.equal(format(lineItems[2]), 'Acme San Francisco at $119/mo $119.00');\n  });\n\n  ember_qunit.test('line items each location - yearly', function (assert) {\n    assert.expect(3);\n\n    this.setProperties({\n      coupon: null,\n      period: 'yearly',\n      plan: plan,\n      locations: locations\n    });\n\n    this.render(Ember['default'].HTMLBars.template((function () {\n      return {\n        meta: {\n          'fragmentReason': {\n            'name': 'missing-wrapper',\n            'problems': ['wrong-type']\n          },\n          'revision': 'Ember@2.2.0-beta.1',\n          'loc': {\n            'source': null,\n            'start': {\n              'line': 1,\n              'column': 0\n            },\n            'end': {\n              'line': 8,\n              'column': 2\n            }\n          }\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode('\\n    ');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment('');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode('\\n  ');\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);\n          return morphs;\n        },\n        statements: [['inline', 'plan-ledger', [], ['coupon', ['subexpr', '@mut', [['get', 'coupon', ['loc', [null, [3, 11], [3, 17]]]]], [], []], 'period', ['subexpr', '@mut', [['get', 'period', ['loc', [null, [4, 11], [4, 17]]]]], [], []], 'plan', ['subexpr', '@mut', [['get', 'plan', ['loc', [null, [5, 9], [5, 13]]]]], [], []], 'locations', ['subexpr', '@mut', [['get', 'locations', ['loc', [null, [6, 14], [6, 23]]]]], [], []]], ['loc', [null, [2, 4], [7, 6]]]]],\n        locals: [],\n        templates: []\n      };\n    })()));\n\n    var lineItems = this.$().find('.js-line-item-location');\n    assert.equal(format(lineItems[0]), 'Acme Boston at $99/mo $1,188.00');\n    assert.equal(format(lineItems[1]), 'Acme Chicago at $99/mo $1,188.00');\n    assert.equal(format(lineItems[2]), 'Acme San Francisco at $99/mo $1,188.00');\n  });\n\n  ember_qunit.test('location includes a new location, it puts it at the end with additional css class', function (assert) {\n    assert.expect(6);\n\n    var newLocation = Ember['default'].Object.create({ isNew: true });\n\n    locations.push(newLocation);\n\n    this.setProperties({\n      coupon: null,\n      period: 'monthly',\n      plan: plan,\n      locations: locations\n    });\n\n    this.render(Ember['default'].HTMLBars.template((function () {\n      return {\n        meta: {\n          'fragmentReason': {\n            'name': 'missing-wrapper',\n            'problems': ['wrong-type']\n          },\n          'revision': 'Ember@2.2.0-beta.1',\n          'loc': {\n            'source': null,\n            'start': {\n              'line': 1,\n              'column': 0\n            },\n            'end': {\n              'line': 8,\n              'column': 2\n            }\n          }\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode('\\n    ');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment('');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode('\\n  ');\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);\n          return morphs;\n        },\n        statements: [['inline', 'plan-ledger', [], ['coupon', ['subexpr', '@mut', [['get', 'coupon', ['loc', [null, [3, 11], [3, 17]]]]], [], []], 'period', ['subexpr', '@mut', [['get', 'period', ['loc', [null, [4, 11], [4, 17]]]]], [], []], 'plan', ['subexpr', '@mut', [['get', 'plan', ['loc', [null, [5, 9], [5, 13]]]]], [], []], 'locations', ['subexpr', '@mut', [['get', 'locations', ['loc', [null, [6, 14], [6, 23]]]]], [], []]], ['loc', [null, [2, 4], [7, 6]]]]],\n        locals: [],\n        templates: []\n      };\n    })()));\n\n    var lineItems = this.$().find('.js-line-item-location');\n    assert.equal(format(lineItems[0]), 'Acme Boston at $119/mo $119.00');\n    assert.equal(format(lineItems[1]), 'Acme Chicago at $119/mo $119.00');\n    assert.equal(format(lineItems[2]), 'Acme San Francisco at $119/mo $119.00');\n    assert.equal(format(lineItems[3]), 'New Location at $119/mo $119.00');\n\n    assert.ok(Ember['default'].$(lineItems[3]).hasClass('priceUpdated'), 'has the priceUpdated class');\n\n    Ember['default'].run(function () {\n      newLocation.setProperties({\n        name: 'Denver',\n        nameWithCompanyName: 'Acme Denver'\n      });\n    });\n\n    lineItems = this.$().find('.js-line-item-location');\n    assert.equal(format(lineItems[3]), 'Acme Denver at $119/mo $119.00');\n  });\n\n  ember_qunit.test('due now displays the renewal date', function (assert) {\n    this.setProperties({\n      coupon: null,\n      period: 'monthly',\n      plan: plan,\n      locations: locations,\n      periodEnd: moment('Feb 15, 2015', 'MMM D, YYYY').unix()\n    });\n\n    this.render(Ember['default'].HTMLBars.template((function () {\n      return {\n        meta: {\n          'fragmentReason': {\n            'name': 'missing-wrapper',\n            'problems': ['wrong-type']\n          },\n          'revision': 'Ember@2.2.0-beta.1',\n          'loc': {\n            'source': null,\n            'start': {\n              'line': 1,\n              'column': 0\n            },\n            'end': {\n              'line': 9,\n              'column': 2\n            }\n          }\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode('\\n    ');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment('');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode('\\n  ');\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);\n          return morphs;\n        },\n        statements: [['inline', 'plan-ledger', [], ['coupon', ['subexpr', '@mut', [['get', 'coupon', ['loc', [null, [3, 11], [3, 17]]]]], [], []], 'period', ['subexpr', '@mut', [['get', 'period', ['loc', [null, [4, 11], [4, 17]]]]], [], []], 'plan', ['subexpr', '@mut', [['get', 'plan', ['loc', [null, [5, 9], [5, 13]]]]], [], []], 'locations', ['subexpr', '@mut', [['get', 'locations', ['loc', [null, [6, 14], [6, 23]]]]], [], []], 'periodEnd', ['subexpr', '@mut', [['get', 'periodEnd', ['loc', [null, [7, 14], [7, 23]]]]], [], []]], ['loc', [null, [2, 4], [8, 6]]]]],\n        locals: [],\n        templates: []\n      };\n    })()));\n\n    assert.equal(this.$().find('.js-due-now').text(), 'Due Now (Today until renewal on Feb 15, 2015)');\n  });\n\n  ember_qunit.test('displays a default line item if there are no locations', function (assert) {\n    this.setProperties({\n      coupon: null,\n      period: 'monthly',\n      plan: plan,\n      locations: [],\n      periodEnd: moment('Feb 15, 2015', 'MMM D, YYYY').unix()\n    });\n\n    this.render(Ember['default'].HTMLBars.template((function () {\n      return {\n        meta: {\n          'fragmentReason': {\n            'name': 'missing-wrapper',\n            'problems': ['wrong-type']\n          },\n          'revision': 'Ember@2.2.0-beta.1',\n          'loc': {\n            'source': null,\n            'start': {\n              'line': 1,\n              'column': 0\n            },\n            'end': {\n              'line': 9,\n              'column': 2\n            }\n          }\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode('\\n    ');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment('');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode('\\n  ');\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);\n          return morphs;\n        },\n        statements: [['inline', 'plan-ledger', [], ['coupon', ['subexpr', '@mut', [['get', 'coupon', ['loc', [null, [3, 11], [3, 17]]]]], [], []], 'period', ['subexpr', '@mut', [['get', 'period', ['loc', [null, [4, 11], [4, 17]]]]], [], []], 'plan', ['subexpr', '@mut', [['get', 'plan', ['loc', [null, [5, 9], [5, 13]]]]], [], []], 'locations', ['subexpr', '@mut', [['get', 'locations', ['loc', [null, [6, 14], [6, 23]]]]], [], []], 'periodEnd', ['subexpr', '@mut', [['get', 'periodEnd', ['loc', [null, [7, 14], [7, 23]]]]], [], []]], ['loc', [null, [2, 4], [8, 6]]]]],\n        locals: [],\n        templates: []\n      };\n    })()));\n\n    var lineItems = this.$().find('.js-line-item-location');\n    assert.equal(format(lineItems[0]), 'Premium Monthly at $119/mo $119.00');\n  });\n\n});","define('garaje/tests/integration/components/plan-ledger-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - integration/components');\n  QUnit.test('integration/components/plan-ledger-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'integration/components/plan-ledger-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/integration/sync-settings/group-select/component-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('sync-settings/group-select', 'Integration | Component | group select', {\n    integration: true\n  });\n\n  ember_qunit.test('it renders', function (assert) {\n    assert.expect(3);\n\n    this.set('filter', Ember['default'].Object.create({ value: 'foo' }));\n    this.set('groups', [{\n      name: 'Envoy Officer',\n      group_id: '1'\n    }, {\n      name: 'Everyone',\n      group_id: '2'\n    }, {\n      name: 'Remote Envoy Workers',\n      group_id: '3'\n    }]);\n\n    this.render(Ember['default'].HTMLBars.template((function () {\n      return {\n        meta: {\n          'fragmentReason': {\n            'name': 'missing-wrapper',\n            'problems': ['wrong-type']\n          },\n          'revision': 'Ember@2.2.0-beta.1',\n          'loc': {\n            'source': null,\n            'start': {\n              'line': 1,\n              'column': 0\n            },\n            'end': {\n              'line': 3,\n              'column': 2\n            }\n          }\n        },\n        isEmpty: false,\n        arity: 0,\n        cachedFragment: null,\n        hasRendered: false,\n        buildFragment: function buildFragment(dom) {\n          var el0 = dom.createDocumentFragment();\n          var el1 = dom.createTextNode('\\n    ');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createComment('');\n          dom.appendChild(el0, el1);\n          var el1 = dom.createTextNode('\\n  ');\n          dom.appendChild(el0, el1);\n          return el0;\n        },\n        buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n          var morphs = new Array(1);\n          morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);\n          return morphs;\n        },\n        statements: [['inline', 'sync-settings/group-select', [], ['groups', ['subexpr', '@mut', [['get', 'groups', ['loc', [null, [2, 40], [2, 46]]]]], [], []], 'value', ['subexpr', 'mut', [['get', 'filter.value', ['loc', [null, [2, 58], [2, 70]]]]], [], ['loc', [null, [2, 53], [2, 71]]]]], ['loc', [null, [2, 4], [2, 73]]]]],\n        locals: [],\n        templates: []\n      };\n    })()));\n\n    assert.equal(this.$('option').length, 4, 'render options');\n\n    var select = this.$('select');\n\n    Ember['default'].run(function () {\n      select.val('2');\n      select.change();\n    });\n\n    assert.equal(select.val(), '2', 'select value is updated properly');\n    assert.equal(this.get('filter.value'), '2', 'updates filter');\n  });\n\n});","define('garaje/tests/integration/sync-settings/group-select/component-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - integration/sync-settings/group-select');\n  QUnit.test('integration/sync-settings/group-select/component-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'integration/sync-settings/group-select/component-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/abortable-ajax.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/abortable-ajax.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/abortable-ajax.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/accent-color-handlers.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/accent-color-handlers.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/accent-color-handlers.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/address-lookup.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/address-lookup.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/address-lookup.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/col-pick-on-change.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/col-pick-on-change.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/col-pick-on-change.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/company-logo-handlers.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/company-logo-handlers.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/company-logo-handlers.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/droppable-upload.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/droppable-upload.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/droppable-upload.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/editing-route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/editing-route.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/editing-route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/highlight-changes.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/highlight-changes.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/highlight-changes.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/intercom-update.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/intercom-update.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/intercom-update.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/multi-location-helpers.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/multi-location-helpers.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/multi-location-helpers.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/reset-scroll.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/reset-scroll.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/reset-scroll.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/segment-page-view.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/segment-page-view.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/segment-page-view.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/slideshow-handlers.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/slideshow-handlers.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/slideshow-handlers.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/sync-settings/all-filter.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins/sync-settings');\n  QUnit.test('mixins/sync-settings/all-filter.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/sync-settings/all-filter.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/sync-settings/object.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins/sync-settings');\n  QUnit.test('mixins/sync-settings/object.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/sync-settings/object.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/mixins/welcome-image-handlers.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - mixins');\n  QUnit.test('mixins/welcome-image-handlers.js should pass jshint', function(assert) { \n    assert.ok(true, 'mixins/welcome-image-handlers.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/admin-fragment.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/admin-fragment.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/admin-fragment.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/admin.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/admin.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/admin.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/badge.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/badge.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/badge.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/box.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/box.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/box.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/company.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/company.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/company.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/config.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/config.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/config.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/coupon.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/coupon.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/coupon.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/custom-field.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/custom-field.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/custom-field.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/dropdown-option.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/dropdown-option.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/dropdown-option.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/employee-filter.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/employee-filter.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/employee-filter.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/employees-filter.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/employees-filter.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/employees-filter.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/entry.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/entry.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/entry.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/google-app.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/google-app.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/google-app.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/hipchat-connection.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/hipchat-connection.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/hipchat-connection.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/ifttt-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/ifttt-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/ifttt-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/invite.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/invite.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/invite.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/leaderboard.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/leaderboard.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/leaderboard.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/localized-field.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/localized-field.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/localized-field.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/location.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/location.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/location.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/logo.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/logo.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/logo.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/nda.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/nda.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/nda.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/okta-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/okta-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/okta-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/one-login.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/one-login.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/one-login.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/payment.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/payment.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/payment.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/plan.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/plan.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/plan.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/printer.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/printer.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/printer.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/receptionist.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/receptionist.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/receptionist.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/salesforce-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/salesforce-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/salesforce-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/saml.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/saml.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/saml.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/slideshow.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/slideshow.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/slideshow.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/subscription.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/subscription.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/subscription.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/thumbnail.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/thumbnail.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/thumbnail.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/user-datum.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/user-datum.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/user-datum.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/watchlist.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/watchlist.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/watchlist.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/webhook.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/webhook.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/webhook.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/models/zapier-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - models');\n  QUnit.test('models/zapier-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'models/zapier-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/new-employee/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - new-employee');\n  QUnit.test('new-employee/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'new-employee/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding');\n  QUnit.test('protected/onboarding/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/employees/add-manual/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/employees/add-manual');\n  QUnit.test('protected/onboarding/employees/add-manual/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/employees/add-manual/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/employees/add-manual/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/employees/add-manual');\n  QUnit.test('protected/onboarding/employees/add-manual/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/employees/add-manual/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/employees/import-csv/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/employees/import-csv');\n  QUnit.test('protected/onboarding/employees/import-csv/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/employees/import-csv/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/employees/import-csv/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/employees/import-csv');\n  QUnit.test('protected/onboarding/employees/import-csv/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/employees/import-csv/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/employees/index/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/employees/index');\n  QUnit.test('protected/onboarding/employees/index/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/employees/index/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/employees/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/employees');\n  QUnit.test('protected/onboarding/employees/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/employees/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/employees/syncing/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/employees/syncing');\n  QUnit.test('protected/onboarding/employees/syncing/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/employees/syncing/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/equipment/envoy-in-a-box/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/equipment/envoy-in-a-box');\n  QUnit.test('protected/onboarding/equipment/envoy-in-a-box/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/equipment/envoy-in-a-box/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/equipment/envoy-in-a-box/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/equipment/envoy-in-a-box');\n  QUnit.test('protected/onboarding/equipment/envoy-in-a-box/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/equipment/envoy-in-a-box/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/equipment/index/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/equipment/index');\n  QUnit.test('protected/onboarding/equipment/index/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/equipment/index/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/index/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/index');\n  QUnit.test('protected/onboarding/index/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/index/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/ipad/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/ipad');\n  QUnit.test('protected/onboarding/ipad/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/ipad/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/ipad/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/ipad');\n  QUnit.test('protected/onboarding/ipad/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/ipad/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/location/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/location');\n  QUnit.test('protected/onboarding/location/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/location/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/location/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/location');\n  QUnit.test('protected/onboarding/location/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/location/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/notifications/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/notifications');\n  QUnit.test('protected/onboarding/notifications/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/notifications/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/notifications/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/notifications');\n  QUnit.test('protected/onboarding/notifications/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/notifications/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/pre-registration/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/pre-registration');\n  QUnit.test('protected/onboarding/pre-registration/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/pre-registration/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/pre-registration/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/pre-registration');\n  QUnit.test('protected/onboarding/pre-registration/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/pre-registration/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding');\n  QUnit.test('protected/onboarding/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/protected/onboarding/video/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - protected/onboarding/video');\n  QUnit.test('protected/onboarding/video/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'protected/onboarding/video/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/router.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - .');\n  QUnit.test('router.js should pass jshint', function(assert) { \n    assert.ok(true, 'router.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/admin.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/admin.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/admin.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/application.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/application.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/application.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/badge-edit.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/badge-edit.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/badge-edit.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/badge-enable.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/badge-enable.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/badge-enable.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/badge.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/badge.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/badge.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/billing/index.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes/billing');\n  QUnit.test('routes/billing/index.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/billing/index.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/billing.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/billing.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/billing.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/dashboard.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/dashboard.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/dashboard.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/devices/index.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes/devices');\n  QUnit.test('routes/devices/index.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/devices/index.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/devices.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/devices.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/devices.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/entry.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/entry.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/entry.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/i18n.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/i18n.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/i18n.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/ipad.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/ipad.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/ipad.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/location.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/location.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/location.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/login.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/login.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/login.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/new-location.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/new-location.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/new-location.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/not-found.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/not-found.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/not-found.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/notifications.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/notifications.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/notifications.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/plans.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/plans.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/plans.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/pre-registered.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/pre-registered.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/pre-registered.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/pre-registration-upgrade.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/pre-registration-upgrade.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/pre-registration-upgrade.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/pre-registration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/pre-registration.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/pre-registration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/protected/index.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes/protected');\n  QUnit.test('routes/protected/index.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/protected/index.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/protected.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/protected.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/protected.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/receptionist.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/receptionist.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/receptionist.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/settings/index.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes/settings');\n  QUnit.test('routes/settings/index.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/settings/index.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/settings.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/settings.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/settings.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/routes/subscribe.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - routes');\n  QUnit.test('routes/subscribe.js should pass jshint', function(assert) { \n    assert.ok(true, 'routes/subscribe.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/application.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/application.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/application.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/config.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/config.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/config.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/employees-filter.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/employees-filter.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/employees-filter.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/google-app.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/google-app.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/google-app.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/ifttt-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/ifttt-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/ifttt-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/leaderboard.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/leaderboard.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/leaderboard.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/nested.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/nested.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/nested.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/okta-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/okta-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/okta-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/one-login.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/one-login.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/one-login.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/salesforce-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/salesforce-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/salesforce-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/v2.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/v2.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/v2.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/serializers/zapier-integration.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - serializers');\n  QUnit.test('serializers/zapier-integration.js should pass jshint', function(assert) { \n    assert.ok(true, 'serializers/zapier-integration.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/address-lookup.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/address-lookup.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/address-lookup.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/ajax.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/ajax.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/ajax.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/current-admin.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/current-admin.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/current-admin.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/current-location.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/current-location.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/current-location.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/google-sync-manager.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/google-sync-manager.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/google-sync-manager.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/integrations-manager.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/integrations-manager.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/integrations-manager.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/local-storage.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/local-storage.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/local-storage.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/locations.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/locations.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/locations.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/message-bus.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/message-bus.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/message-bus.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/pubnub.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/pubnub.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/pubnub.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/subscription.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/subscription.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/subscription.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/services/sync-manager.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - services');\n  QUnit.test('services/sync-manager.js should pass jshint', function(assert) { \n    assert.ok(true, 'services/sync-manager.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations');\n  QUnit.test('settings/integrations/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/enabled/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/enabled');\n  QUnit.test('settings/integrations/enabled/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/enabled/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/enabled/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/enabled');\n  QUnit.test('settings/integrations/enabled/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/enabled/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/google-apps-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/google-apps-config-box');\n  QUnit.test('settings/integrations/google-apps-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/google-apps-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/google-hangouts-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/google-hangouts-config-box');\n  QUnit.test('settings/integrations/google-hangouts-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/google-hangouts-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/hipchat-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/hipchat-config-box');\n  QUnit.test('settings/integrations/hipchat-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/hipchat-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/ifttt-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/ifttt-config-box');\n  QUnit.test('settings/integrations/ifttt-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/ifttt-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/index/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/index');\n  QUnit.test('settings/integrations/index/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/index/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/install-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/install-box');\n  QUnit.test('settings/integrations/install-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/install-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/integration-request/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/integration-request');\n  QUnit.test('settings/integrations/integration-request/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/integration-request/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/okta-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/okta-config-box');\n  QUnit.test('settings/integrations/okta-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/okta-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/one-login-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/one-login-config-box');\n  QUnit.test('settings/integrations/one-login-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/one-login-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations');\n  QUnit.test('settings/integrations/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/salesforce-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/salesforce-config-box');\n  QUnit.test('settings/integrations/salesforce-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/salesforce-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/saml-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/saml-config-box');\n  QUnit.test('settings/integrations/saml-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/saml-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/slack-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/slack-config-box');\n  QUnit.test('settings/integrations/slack-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/slack-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/webhook-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/webhook-config-box');\n  QUnit.test('settings/integrations/webhook-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/webhook-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/settings/integrations/zapier-config-box/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - settings/integrations/zapier-config-box');\n  QUnit.test('settings/integrations/zapier-config-box/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'settings/integrations/zapier-config-box/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/all-filter/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/all-filter');\n  QUnit.test('sync-settings/all-filter/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/all-filter/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/company-filter/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/company-filter');\n  QUnit.test('sync-settings/company-filter/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/company-filter/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/controller.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings');\n  QUnit.test('sync-settings/controller.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/controller.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/google-apps/all-filter/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/google-apps/all-filter');\n  QUnit.test('sync-settings/google-apps/all-filter/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/google-apps/all-filter/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/google-apps/company-filter/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/google-apps/company-filter');\n  QUnit.test('sync-settings/google-apps/company-filter/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/google-apps/company-filter/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/google-apps/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/google-apps');\n  QUnit.test('sync-settings/google-apps/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/google-apps/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/google-apps/locations-filter/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/google-apps/locations-filter');\n  QUnit.test('sync-settings/google-apps/locations-filter/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/google-apps/locations-filter/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/google-apps/locations-filter/filter-input/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/google-apps/locations-filter/filter-input');\n  QUnit.test('sync-settings/google-apps/locations-filter/filter-input/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/google-apps/locations-filter/filter-input/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/group-select/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/group-select');\n  QUnit.test('sync-settings/group-select/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/group-select/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/locations-filter/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/locations-filter');\n  QUnit.test('sync-settings/locations-filter/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/locations-filter/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/locations-filter/location-filter/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/locations-filter/location-filter');\n  QUnit.test('sync-settings/locations-filter/location-filter/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/locations-filter/location-filter/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/okta-integration/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/okta-integration');\n  QUnit.test('sync-settings/okta-integration/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/okta-integration/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/one-login/component.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings/one-login');\n  QUnit.test('sync-settings/one-login/component.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/one-login/component.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/sync-settings/route.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - sync-settings');\n  QUnit.test('sync-settings/route.js should pass jshint', function(assert) { \n    assert.ok(true, 'sync-settings/route.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/test-helper', ['garaje/tests/helpers/resolver', 'garaje/tests/helpers/register-select-helper', 'ember-qunit'], function (resolver, registerSelectHelper, ember_qunit) {\n\n\t'use strict';\n\n\tregisterSelectHelper['default']();ember_qunit.setResolver(resolver['default']);\n\n});","define('garaje/tests/test-helper.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - .');\n  QUnit.test('test-helper.js should pass jshint', function(assert) { \n    assert.ok(true, 'test-helper.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/transforms/array.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - transforms');\n  QUnit.test('transforms/array.js should pass jshint', function(assert) { \n    assert.ok(true, 'transforms/array.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/transitions.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - .');\n  QUnit.test('transitions.js should pass jshint', function(assert) { \n    assert.ok(true, 'transitions.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/adapters/application-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleFor('adapter:application', 'ApplicationAdapter', {\n    // Specify the other units that are required for this test.\n    // needs: ['serializer:foo']\n  });\n\n  // Replace this with your real tests.\n  ember_qunit.test('it exists', function (assert) {\n    var adapter = this.subject();\n    assert.ok(adapter);\n  });\n\n});","define('garaje/tests/unit/adapters/application-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/adapters');\n  QUnit.test('unit/adapters/application-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/adapters/application-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/adapters/google-app-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleFor('adapter:google-app', 'Unit | Adapter | google app', {\n    // Specify the other units that are required for this test.\n    // needs: ['serializer:foo']\n  });\n\n  // Replace this with your real tests.\n  ember_qunit.test('it exists', function (assert) {\n    var adapter = this.subject();\n    assert.ok(adapter);\n  });\n\n});","define('garaje/tests/unit/adapters/google-app-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/adapters');\n  QUnit.test('unit/adapters/google-app-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/adapters/google-app-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/adapters/okta-integration-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleFor('adapter:okta-integration', 'Unit | Adapter | okta integration', {\n    // Specify the other units that are required for this test.\n    // needs: ['serializer:foo']\n  });\n\n  // Replace this with your real tests.\n  ember_qunit.test('it exists', function (assert) {\n    var adapter = this.subject();\n    assert.ok(adapter);\n  });\n\n});","define('garaje/tests/unit/adapters/okta-integration-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/adapters');\n  QUnit.test('unit/adapters/okta-integration-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/adapters/okta-integration-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/cc-form-test', ['ember', 'ember-qunit'], function (Ember, ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('cc-form', {\n    integration: false\n  });\n\n  var messageBus = {\n    on: Ember['default'].K,\n    off: Ember['default'].K\n  };\n\n  ember_qunit.test('unsubscribes from message bus', function (assert) {\n    assert.expect(1);\n    var component = undefined;\n\n    var messageBus = {\n      off: function off(name) {\n        assert.equal(name, 'createStripeToken', 'off with correct event');\n      }\n    };\n    this.subject({\n      messageBus: messageBus\n    });\n  });\n\n  ember_qunit.test('expirationMonth', function (assert) {\n    var component = this.subject({\n      messageBus: messageBus\n    });\n    Ember['default'].run(function () {\n      component.set('expirationMonthYear', '12/19');\n    });\n\n    assert.equal(component.get('expirationMonth'), '12');\n    // formatted\n    Ember['default'].run(function () {\n      component.set('expirationMonthYear', '12 / 2017');\n    });\n    assert.equal(component.get('expirationMonth'), '12');\n  });\n\n  ember_qunit.test('expirationYear', function (assert) {\n    var component = this.subject({\n      messageBus: messageBus\n    });\n    // 2 digit year\n    Ember['default'].run(function () {\n      component.set('expirationMonthYear', '12/19');\n    });\n    assert.equal(component.get('expirationYear'), '2019');\n    // 4 digit year\n    Ember['default'].run(function () {\n      component.set('expirationMonthYear', '12/2017');\n    });\n    assert.equal(component.get('expirationYear'), '2017');\n    // formatted\n    Ember['default'].run(function () {\n      component.set('expirationMonthYear', '12 / 2017');\n    });\n    assert.equal(component.get('expirationYear'), '2017');\n  });\n\n  ember_qunit.test('isValid', function (assert) {\n    var component = this.subject({\n      messageBus: messageBus\n    });\n    assert.ok(component.get('isValid'));\n    Ember['default'].run(function () {\n      component.set('cardExpiryErrorMessage', 'foo');\n    });\n    assert.ok(!component.get('isValid'));\n  });\n\n});","define('garaje/tests/unit/components/cc-form-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/cc-form-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/cc-form-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/color-picker-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('color-picker', {\n    unit: true\n  });\n\n  ember_qunit.test('cssColor', function (assert) {\n    var component = this.subject();\n\n    component.set('cssColor', '#c50000');\n    assert.equal(component.get('value'), 'c50000', 'strips out the #');\n\n    component.set('value', 'cc2233');\n    assert.equal(component.get('cssColor'), '#cc2233', 'adds the #');\n\n    component.set('cssColor', null);\n    assert.equal(component.get('value'), '', 'returns value as empty string');\n\n    component.set('value', '');\n    assert.ok(!component.get('cssColor'), 'returns cssColor as falsy');\n  });\n\n  ember_qunit.test('style', function (assert) {\n    var component = this.subject();\n\n    component.set('value', 'cc2233');\n    assert.equal(component.get('style'), 'width:200px;background:#cc2233', 'valid css');\n\n    component.set('value', '');\n    assert.equal(component.get('style'), '', 'value empty string returns style empty string');\n\n    component.set('cssColor', null);\n    assert.equal(component.get('style'), '', 'cssColor null returns style empty string');\n  });\n\n});","define('garaje/tests/unit/components/color-picker-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/color-picker-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/color-picker-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/configurator-option-group-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('configurator-option-group', {\n    unit: true\n  });\n\n  ember_qunit.test('it renders', function (assert) {\n    assert.expect(2);\n\n    // creates the component instance\n    var component = this.subject();\n    assert.equal(component._state, 'preRender');\n\n    // renders the component to the page\n    this.render();\n    assert.equal(component._state, 'inDOM');\n  });\n\n});","define('garaje/tests/unit/components/configurator-option-group-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/configurator-option-group-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/configurator-option-group-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/configurator-option-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('configurator-option', {\n    unit: true\n  });\n\n  ember_qunit.test('it renders', function (assert) {\n    assert.expect(2);\n\n    // creates the component instance\n    var component = this.subject();\n    assert.equal(component._state, 'preRender');\n\n    // renders the component to the page\n    this.render();\n    assert.equal(component._state, 'inDOM');\n  });\n\n});","define('garaje/tests/unit/components/configurator-option-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/configurator-option-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/configurator-option-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/file-upload-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  var component, uploader, controller;\n\n  ember_qunit.moduleForComponent('file-upload', {\n    unit: true,\n    beforeEach: function beforeEach(assert) {\n      controller = {\n        action: function action() {\n          assert.ok(true, 'action called');\n        },\n\n        showFlash: function showFlash(type) {\n          if (this.flashType) {\n            assert.equal(type, this.flashType, type + ' flash was displayed');\n          }\n        },\n\n        hideFlash: Ember['default'].K,\n\n        send: function send() {\n          var args = Array.prototype.slice.call(arguments);\n          var action = args.shift();\n          this[action].apply(this, args);\n        }\n      };\n\n      uploader = Ember['default'].Object.extend({\n        on: function on(event, callback) {\n          this.callback = callback;\n        },\n\n        off: Ember['default'].K,\n\n        upload: function upload(data) {\n          this.callback(data);\n          return Ember['default'].RSVP.resolve();\n        }\n      });\n\n      component = this.subject();\n\n      component.setProperties({\n        uploaderClass: uploader,\n        targetObject: controller\n      });\n    }\n  });\n\n  ember_qunit.test('chooses at most 5 files', function (assert) {\n    assert.expect(5);\n    component.set('action', 'action');\n    component.set('max', 5);\n    component.set('files', ['file1', 'file2', 'file3', 'file4', 'file5', 'file6']);\n  });\n\n  ember_qunit.test('chooses at most 3 files, if there were already 2 slots taken', function (assert) {\n    assert.expect(3);\n    component.set('action', 'action');\n    component.set('max', 3);\n    component.set('files', ['file1', 'file2', 'file3', 'file4', 'file5', 'file6']);\n  });\n\n  ember_qunit.test('fires the allUploaded action even if there were errors', function (assert) {\n    assert.expect(1);\n\n    uploader = Ember['default'].Object.extend({\n      on: function on(event, callback) {\n        this.callback = callback;\n      },\n\n      upload: function upload(data) {\n        this.callback(data);\n        return Ember['default'].RSVP.reject({ statusText: '400 Bad Request' });\n      }\n    });\n\n    component.setProperties({\n      allUploaded: 'action',\n      uploaderClass: uploader\n    });\n    component.set('files', ['file1']);\n  });\n\n  ember_qunit.test('fires the allUploaded action even if there were no files uploaded', function (assert) {\n    assert.expect(1);\n    component.set('allUploaded', 'action');\n    component.set('max', 0);\n    component.set('files', ['file1']);\n  });\n\n  ember_qunit.test('fires the beginUpload action for every file it starts uploading', function (assert) {\n    assert.expect(2);\n    component.set('beginUpload', 'action');\n    component.set('max', 2);\n    component.set('files', ['file1', 'file2', 'file3']);\n  });\n\n  ember_qunit.test('fires the success flash if all uploads were good', function (assert) {\n    assert.expect(2);\n    controller.flashType = 'success';\n    component.set('action', 'action');\n    component.set('max', 1);\n    component.set('files', ['file1']);\n  });\n\n  ember_qunit.test('fires the error flash if some uploads were bad', function (assert) {\n    assert.expect(2);\n    controller.flashType = 'error';\n    uploader = Ember['default'].Object.extend({\n      on: function on(event, callback) {\n        this.callback = callback;\n      },\n\n      upload: function upload(data) {\n        this.callback(data);\n        return Ember['default'].RSVP.reject({ statusText: '400 Bad Request' });\n      }\n    });\n    component.set('uploaderClass', uploader);\n    component.set('action', 'action');\n    component.set('max', 1);\n    component.set('files', ['file1', 'file2']);\n  });\n\n});","define('garaje/tests/unit/components/file-upload-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/file-upload-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/file-upload-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/google-maps-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('google-maps', {\n    unit: true\n  });\n\n  ember_qunit.test('it renders', function (assert) {\n    assert.expect(2);\n\n    // creates the component instance\n    var component = this.subject();\n    assert.equal(component._state, 'preRender');\n\n    // appends the component to the page\n    this.render();\n    assert.equal(component._state, 'inDOM');\n  });\n\n});","define('garaje/tests/unit/components/google-maps-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/google-maps-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/google-maps-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/phone-input-test', ['ember-qunit', 'qunit', 'ember'], function (ember_qunit, qunit, Ember) {\n\n  'use strict';\n\n  var input = undefined;\n  var keyCodes = {\n    UP: 38,\n    DOWN: 40,\n    ENTER: 13,\n    ESC: 27,\n    SPACE: 32,\n    BACKSPACE: 8,\n    DELETE: 46,\n    CTRL: 17\n  };\n\n  // Helpers to trigger intlTelInput\n  // https://github.com/Bluefieldscom/intl-tel-input/blob/master/src/spec/helpers/helpers.js#L91-L109\n  var getKeyEvent = function getKeyEvent(key, type) {\n    return Ember['default'].$.Event(type, {\n      which: key.length > 1 ? window.keyCodes[key] : key.charCodeAt(0)\n    });\n  };\n\n  var triggerKeyOnInput = function triggerKeyOnInput(key) {\n    input.trigger(getKeyEvent(key, 'keydown'));\n    var e = getKeyEvent(key, 'keypress');\n    input.trigger(e);\n    // insert char\n    if (!e.isDefaultPrevented()) {\n      var domInput = input[0],\n          val = input.val();\n      input.val(val.substr(0, domInput.selectionStart) + key + val.substring(domInput.selectionEnd, val.length));\n    }\n    input.trigger(getKeyEvent(key, 'keyup'));\n  };\n\n  ember_qunit.moduleForComponent('phone-input', {\n    integration: true,\n\n    beforeEach: function beforeEach() {\n      this.set('phoneNumber', null);\n      this.set('isValidated', false);\n\n      this.render(Ember['default'].HTMLBars.template((function () {\n        return {\n          meta: {\n            'fragmentReason': {\n              'name': 'missing-wrapper',\n              'problems': ['wrong-type']\n            },\n            'revision': 'Ember@2.2.0-beta.1',\n            'loc': {\n              'source': null,\n              'start': {\n                'line': 1,\n                'column': 0\n              },\n              'end': {\n                'line': 6,\n                'column': 4\n              }\n            }\n          },\n          isEmpty: false,\n          arity: 0,\n          cachedFragment: null,\n          hasRendered: false,\n          buildFragment: function buildFragment(dom) {\n            var el0 = dom.createDocumentFragment();\n            var el1 = dom.createTextNode('\\n      ');\n            dom.appendChild(el0, el1);\n            var el1 = dom.createComment('');\n            dom.appendChild(el0, el1);\n            var el1 = dom.createTextNode('\\n    ');\n            dom.appendChild(el0, el1);\n            return el0;\n          },\n          buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {\n            var morphs = new Array(1);\n            morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);\n            return morphs;\n          },\n          statements: [['inline', 'phone-input', [], ['phoneNumber', ['subexpr', '@mut', [['get', 'phoneNumber', ['loc', [null, [3, 20], [3, 31]]]]], [], []], 'label', 'Phone Number', 'validated', ['subexpr', '@mut', [['get', 'isValidated', ['loc', [null, [5, 18], [5, 29]]]]], [], []]], ['loc', [null, [2, 6], [5, 31]]]]],\n          locals: [],\n          templates: []\n        };\n      })())); // setting defaultCountry so that it doesn't fire to ipinfo doesn't fire\n\n      input = this.$('input');\n    }\n  });\n\n  qunit.skip('formats the value as you fill in the input', function (assert) {\n    assert.expect(1);\n\n    Ember['default'].run(function () {\n      input.val('+14159353143');\n      triggerKeyOnInput(' ');\n    });\n    assert.equal(input.val(), '(415) 935-3143');\n  });\n\n  qunit.skip('sets phoneNumber to the international format', function (assert) {\n    assert.expect(1);\n    Ember['default'].run(function () {\n      input.val('4159353143');\n      triggerKeyOnInput(' ');\n    });\n    assert.equal(this.get('phoneNumber'), '+14159353143');\n  });\n\n  qunit.skip('formats the value when phoneNumber changes', function (assert) {\n    var _this = this;\n\n    assert.expect(1);\n    Ember['default'].run(function () {\n      _this.set('phoneNumber', '+14159353143');\n    });\n    assert.equal(input.val(), '(415) 935-3143');\n  });\n\n});","define('garaje/tests/unit/components/phone-input-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/phone-input-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/phone-input-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/plan-button-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('plan-button', {\n    unit: true\n  });\n\n  ember_qunit.test('its a button', function (assert) {\n    var component = this.subject();\n    assert.equal(this.$().prop('tagName'), 'BUTTON', 'its a button');\n  });\n\n  ///////////////////////////////////////\n  // On Trial scenarios                //\n  ///////////////////////////////////////\n\n  ember_qunit.test('when plan is standard and currentPlan is empty (on trial for example)', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'standard',\n          name: 'Standard'\n        },\n        currentPlan: null\n      });\n    });\n\n    assert.equal(this.$().text(), 'Choose Standard', 'copy is choose standard');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ember_qunit.test('when plan is standard and currentPlan is empty and there is more than 1 active location', function (assert) {\n    assert.expect(4);\n\n    var component = this.subject();\n\n    var controller = {\n      selectPlan: function selectPlan(plan, period) {\n        assert.ok(!plan, 'plan is falsy');\n        assert.ok(!period, 'period is falsy');\n      }\n    };\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'standard'\n        },\n        currentPlan: null,\n        numberOfActiveLocations: 2,\n        targetObject: controller,\n        action: 'selectPlan'\n      });\n    });\n\n    this.render();\n\n    assert.equal(component.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!component.$().prop('disabled'), 'not disabled');\n\n    component.$().click();\n  });\n\n  ember_qunit.test('when plan is premium and currentPlan is empty (on trial for example)', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium',\n          name: 'Premium'\n        },\n        currentPlan: null\n      });\n    });\n\n    assert.equal(this.$().text(), 'Choose Premium', 'copy is choose premium');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n    assert.ok(this.$().hasClass('btn--white'), 'button is white');\n  });\n\n  ember_qunit.test('when plan is premium and currentPlan is empty and there is more than 1 active location', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium',\n          name: 'Premium'\n        },\n        currentPlan: null,\n        numberOfActiveLocations: 2\n      });\n    });\n\n    assert.equal(this.$().text(), 'Choose Premium', 'copy is choose premium');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n    assert.ok(this.$().hasClass('btn--white'), 'button is white');\n  });\n\n  ember_qunit.test('when plan is enterprise and currentPlan is empty (on trial for example)', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'enterprise'\n        },\n        currentPlan: null\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ///////////////////////////////////////\n  // Upgrade to Yearly scenarios       //\n  ///////////////////////////////////////\n  ember_qunit.test('when plan is standard and currentPlan is standard monthly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'standard'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'monthly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Upgrade to Yearly', 'copy is upgrade to yearly');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ember_qunit.test('when plan is premium and currentPlan is premium monthly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium'\n        },\n        currentPlan: {\n          plan: 'premium',\n          period: 'monthly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Upgrade to Yearly', 'copy is upgrade to yearly');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n    assert.ok(this.$().hasClass('btn--white'), 'button is white');\n  });\n\n  ember_qunit.test('when plan is premium and currentPlan is legacy monthly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium'\n        },\n        currentPlan: {\n          plan: 'legacy',\n          period: 'monthly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n    assert.ok(this.$().hasClass('btn--white'), 'button is white');\n  });\n\n  ///////////////////////////////////////\n  // Your Current Plan scenarios       //\n  ///////////////////////////////////////\n\n  ember_qunit.test('when plan is standard and currentPlan is standard yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'standard'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Your Current Plan', 'copy is your current plan');\n    assert.ok(this.$().prop('disabled'), 'button disabled');\n  });\n\n  ember_qunit.test('when plan is premium and currentPlan is premium yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium'\n        },\n        currentPlan: {\n          plan: 'premium',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Your Current Plan', 'copy is your current plan');\n    assert.ok(this.$().prop('disabled'), 'button disabled');\n  });\n\n  ember_qunit.test('when plan is enterprise and currentPlan is enterprise yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'enterprise'\n        },\n        currentPlan: {\n          plan: 'enterprise',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Your Current Plan', 'copy is your current plan');\n    assert.ok(this.$().prop('disabled'), 'button disabled');\n  });\n\n  ember_qunit.test('when plan is premium and currentPlan is legacy yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium'\n        },\n        currentPlan: {\n          plan: 'legacy',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is your contact us');\n    assert.ok(!this.$().prop('disabled'), 'button enabled');\n    assert.ok(this.$().hasClass('btn--white'), 'button is white');\n  });\n\n  ///////////////////////////////////////\n  // Upgrade to next plan up scenarios //\n  ///////////////////////////////////////\n\n  ember_qunit.test('when plan is premium and currentPlan is standard monthly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium',\n          name: 'Premium'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'monthly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Upgrade to Premium', 'copy is upgrade to premium');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n    assert.ok(this.$().hasClass('btn--white'), 'button is white');\n  });\n\n  ember_qunit.test('when plan is premium and currentPlan is standard yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium',\n          name: 'Premium'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Upgrade to Premium', 'copy is upgrade to premium');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n    assert.ok(this.$().hasClass('btn--white'), 'button is white');\n  });\n\n  ///////////////////////////////////////\n  // Downgrade scenarios               //\n  ///////////////////////////////////////\n\n  ember_qunit.test('when plan is standard and currentPlan is premium monthly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'standard'\n        },\n        currentPlan: {\n          plan: 'premium',\n          period: 'monthly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ember_qunit.test('when plan is standard and currentPlan is premium yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'standard'\n        },\n        currentPlan: {\n          plan: 'premium',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ember_qunit.test('when plan is premium and currentPlan is enterprise yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium'\n        },\n        currentPlan: {\n          plan: 'enterprise',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n    assert.ok(this.$().hasClass('btn--white'), 'button is white');\n  });\n\n  ember_qunit.test('when plan is standard and currentPlan is enterprise yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'standard'\n        },\n        currentPlan: {\n          plan: 'enterprise',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ///////////////////////////////////////\n  // Enterprise scenarios              //\n  ///////////////////////////////////////\n\n  ember_qunit.test('when plan is enterprise and currentPlan is standard monthly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'enterprise'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'monthly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ember_qunit.test('when plan is enterprise and currentPlan is standard yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'enterprise'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ember_qunit.test('when plan is enterprise and currentPlan is premium monthly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'enterprise'\n        },\n        currentPlan: {\n          plan: 'premium',\n          period: 'monthly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ember_qunit.test('when plan is enterprise and currentPlan is premium yearly', function (assert) {\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'enterprise'\n        },\n        currentPlan: {\n          plan: 'premium',\n          period: 'yearly'\n        }\n      });\n    });\n\n    assert.equal(this.$().text(), 'Contact Us', 'copy is contact us');\n    assert.ok(!this.$().prop('disabled'), 'not disabled');\n  });\n\n  ///////////////////////////////////////\n  // Click scenarios                   //\n  ///////////////////////////////////////\n\n  ember_qunit.test('when button is choose plan', function (assert) {\n    assert.expect(2);\n\n    var component = this.subject();\n\n    var controller = {\n      selectPlan: function selectPlan(plan, period) {\n        assert.equal(plan, 'standard', 'plan is standard');\n        assert.equal(period, 'yearly', 'period is yearly');\n      }\n    };\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'standard'\n        },\n        currentPlan: null,\n        action: 'selectPlan',\n        targetObject: controller\n      });\n    });\n\n    this.render();\n\n    component.$().click();\n  });\n\n  ember_qunit.test('when button is upgrade to yearly', function (assert) {\n    assert.expect(2);\n\n    var component = this.subject();\n\n    var controller = {\n      selectPlan: function selectPlan(plan, period) {\n        assert.equal(plan, 'premium', 'plan is premium');\n        assert.equal(period, 'yearly', 'period is yearly');\n      }\n    };\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium'\n        },\n        currentPlan: {\n          plan: 'premium',\n          period: 'monthly'\n        },\n        action: 'selectPlan',\n        targetObject: controller\n      });\n    });\n\n    this.render();\n\n    component.$().click();\n  });\n\n  ember_qunit.test('when button is upgrade to next plan up, currently on monthly', function (assert) {\n    assert.expect(2);\n\n    var component = this.subject();\n\n    var controller = {\n      selectPlan: function selectPlan(plan, period) {\n        assert.equal(plan, 'premium', 'plan is premium');\n        assert.equal(period, 'monthly', 'period is monthly');\n      }\n    };\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'monthly'\n        },\n        action: 'selectPlan',\n        targetObject: controller\n      });\n    });\n\n    this.render();\n\n    component.$().click();\n  });\n\n  ember_qunit.test('when button is upgrade to next plan up, currently on yearly', function (assert) {\n    assert.expect(2);\n\n    var component = this.subject();\n\n    var controller = {\n      selectPlan: function selectPlan(plan, period) {\n        assert.equal(plan, 'premium', 'plan is premium');\n        assert.equal(period, 'yearly', 'period is yearly');\n      }\n    };\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'premium'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'yearly'\n        },\n        action: 'selectPlan',\n        targetObject: controller\n      });\n    });\n\n    this.render();\n\n    component.$().click();\n  });\n\n  ember_qunit.test('when button is contact us', function (assert) {\n    assert.expect(2);\n\n    var component = this.subject();\n\n    var controller = {\n      selectPlan: function selectPlan(plan, period) {\n        assert.ok(!plan, 'plan is null');\n        assert.ok(!period, 'period is null');\n      }\n    };\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        plan: {\n          id: 'enterprise'\n        },\n        currentPlan: {\n          plan: 'standard',\n          period: 'yearly'\n        },\n        action: 'selectPlan',\n        targetObject: controller\n      });\n    });\n\n    this.render();\n\n    component.$().click();\n  });\n\n});","define('garaje/tests/unit/components/plan-button-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/plan-button-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/plan-button-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/sign-out-dropdown-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('sign-out-dropdown', {\n    unit: true\n  });\n\n  ember_qunit.test('closestTime should be the closest 15 minute time slot after the current time', function (assert) {\n    assert.expect(1);\n\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        startTime: moment('7:35 pm', 'h:mm a').toDate(),\n        signInTime: moment('2015-03-02 4:01 pm', 'YYYY-MM-DD h:mm a')\n      });\n    });\n\n    assert.equal(moment(component.get('closestTime')).format('h:mm a'), '7:45 pm', 'next 15 min rounded interval chosen');\n  });\n\n  ember_qunit.test('time options should be culled to show only times after the signInTime', function (assert) {\n    assert.expect(1);\n    var component = this.subject();\n\n    Ember['default'].run(function () {\n      component.setProperties({\n        startTime: moment('7:35 pm', 'h:mm a').toDate(),\n        signInTime: moment('2015-03-02 4:00 pm', 'YYYY-MM-DD h:mm a')\n      });\n    });\n\n    assert.equal(component.get('timesArray.length'), 25, 'timesArray does not contain any times before 4:15pm');\n  });\n\n});","define('garaje/tests/unit/components/sign-out-dropdown-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/sign-out-dropdown-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/sign-out-dropdown-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/components/stand-description-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleForComponent('stand-description', 'Unit | Component | stand description', {\n    unit: true\n  });\n\n  ember_qunit.test('it renders', function (assert) {\n    assert.expect(2);\n\n    // Creates the component instance\n    var component = this.subject();\n    assert.equal(component._state, 'preRender');\n\n    // Renders the component to the page\n    this.render();\n    assert.equal(component._state, 'inDOM');\n  });\n\n});","define('garaje/tests/unit/components/stand-description-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/components');\n  QUnit.test('unit/components/stand-description-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/components/stand-description-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/controllers/ipad-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  var controller, model;\n\n  ember_qunit.moduleFor('controller:ipad', 'IpadController', {\n    beforeEach: function beforeEach() {\n      controller = this.subject();\n      model = Ember['default'].Object.create();\n      controller.set('model', model);\n    }\n  });\n\n  ember_qunit.test('ndaBccEnabled', function (assert) {\n    Ember['default'].run(function () {\n      model.setProperties({\n        ndaBccEnabled: true,\n        ndaBccEmail: 'foo@example.com'\n      });\n    });\n    assert.ok(controller.get('ndaBccEnabled'), 'model.ndaBccEnabled true, model.ndaBccEmail has value');\n\n    Ember['default'].run(function () {\n      model.setProperties({\n        ndaBccEnabled: true,\n        ndaBccEmail: ''\n      });\n    });\n    assert.ok(!controller.get('ndaBccEnabled'), 'model.ndaBccEnabled true, model.ndaBccEmail blank');\n\n    Ember['default'].run(function () {\n      model.setProperties({\n        ndaBccEnabled: false,\n        ndaBccEmail: 'foo@example.com'\n      });\n    });\n    assert.ok(!controller.get('ndaBccEnabled'), 'model.ndaBccEnabled false, model.ndaBccEmail has value');\n\n    Ember['default'].run(function () {\n      model.setProperties({\n        ndaBccEnabled: false,\n        ndaBccEmail: ''\n      });\n    });\n    assert.ok(!controller.get('ndaBccEnabled'), 'model.ndaBccEnabled false, model.ndaBccEmail blank');\n  });\n\n});","define('garaje/tests/unit/controllers/ipad-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/controllers');\n  QUnit.test('unit/controllers/ipad-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/controllers/ipad-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/controllers/location-test', ['ember-qunit', 'garaje/tests/helpers/stub-confirm', 'ember'], function (ember_qunit, stubConfirm, Ember) {\n\n  'use strict';\n\n  var controller;\n\n  ember_qunit.moduleFor('controller:location', 'LocationController', {\n    setup: function setup(assert) {\n      var modelStub = {\n        save: function save() {\n          assert.ok(true, 'save called');\n          return Ember['default'].RSVP.resolve();\n        },\n        set: function set() {\n          assert.ok(true, 'set called');\n        }\n      };\n\n      controller = this.subject({\n        model: modelStub,\n        company: {\n          content: modelStub\n        },\n        geocoder: Ember['default'].RSVP.resolve,\n        flashPromise: Ember['default'].K\n      });\n    }\n  });\n\n  ember_qunit.test('it displays a confirmation message, before disabling a location', function (assert) {\n    assert.expect(3);\n\n    stubConfirm['default'](assert, true, function () {\n      controller.send('disable');\n    });\n  });\n\n});","define('garaje/tests/unit/controllers/location-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/controllers');\n  QUnit.test('unit/controllers/location-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/controllers/location-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/helpers/array-to-sentence-test', ['garaje/helpers/array-to-sentence', 'qunit'], function (array_to_sentence, qunit) {\n\n  'use strict';\n\n  qunit.module('ArrayToSentenceHelper');\n\n  qunit.test('an empty array', function (assert) {\n    assert.equal(array_to_sentence.arrayToSentence([]), '');\n  });\n\n  qunit.test('null or undefined', function (assert) {\n    assert.equal(array_to_sentence.arrayToSentence(null), '');\n    assert.equal(array_to_sentence.arrayToSentence(undefined), '');\n  });\n\n  qunit.test('one item', function (assert) {\n    assert.equal(array_to_sentence.arrayToSentence(['foo']), 'foo');\n  });\n\n  qunit.test('two items', function (assert) {\n    assert.equal(array_to_sentence.arrayToSentence(['foo', 'bar']), 'foo and bar');\n  });\n\n  qunit.test('three items', function (assert) {\n    assert.equal(array_to_sentence.arrayToSentence(['foo', 'bar', 'baz']), 'foo, bar, and baz');\n  });\n\n  qunit.test('sparse array', function (assert) {\n    assert.equal(array_to_sentence.arrayToSentence(['foo', null, 'baz']), 'foo and baz');\n  });\n\n  qunit.test('mixed content', function (assert) {\n    assert.equal(array_to_sentence.arrayToSentence([1, 'hello', true]), '1, hello, and true');\n  });\n\n});","define('garaje/tests/unit/helpers/array-to-sentence-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/helpers');\n  QUnit.test('unit/helpers/array-to-sentence-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/helpers/array-to-sentence-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/helpers/formatted-currency-test', ['garaje/helpers/formatted-currency', 'qunit'], function (formatted_currency, qunit) {\n\n  'use strict';\n\n  qunit.module('FormattedCurrencyHelper');\n\n  qunit.test('rounding', function (assert) {\n    assert.equal(formatted_currency.formattedCurrency(42.343), '$42.34');\n    assert.equal(formatted_currency.formattedCurrency(42.358), '$42.36');\n  });\n\n  qunit.test('integer', function (assert) {\n    assert.equal(formatted_currency.formattedCurrency(42), '$42.00');\n  });\n\n  qunit.test('10.1', function (assert) {\n    assert.equal(formatted_currency.formattedCurrency(10.1), '$10.10');\n  });\n\n  qunit.test('string', function (assert) {\n    assert.equal(formatted_currency.formattedCurrency('42.345'), '$42.35');\n    assert.equal(formatted_currency.formattedCurrency('21'), '$21.00');\n  });\n\n  qunit.test('blank', function (assert) {\n    assert.equal(formatted_currency.formattedCurrency(''), '');\n    assert.equal(formatted_currency.formattedCurrency(null), '');\n    assert.equal(formatted_currency.formattedCurrency(NaN), '');\n  });\n\n  qunit.test('commas', function (assert) {\n    assert.equal(formatted_currency.formattedCurrency(42234.343), '$42,234.34');\n    assert.equal(formatted_currency.formattedCurrency('1223234.2343'), '$1,223,234.23');\n  });\n\n  qunit.test('supress trailing .00', function (assert) {\n    assert.equal(formatted_currency.formattedCurrency(42234, true), '$42,234');\n    assert.equal(formatted_currency.formattedCurrency(42234.55, true), '$42,234.55');\n  });\n\n  qunit.test('negative number', function (assert) {\n    assert.equal(formatted_currency.formattedCurrency(-42234.55, true), '($42,234.55)');\n  });\n\n});","define('garaje/tests/unit/helpers/formatted-currency-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/helpers');\n  QUnit.test('unit/helpers/formatted-currency-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/helpers/formatted-currency-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/helpers/pluralized-word-test', ['garaje/helpers/pluralized-word', 'qunit'], function (pluralized_word, qunit) {\n\n  'use strict';\n\n  qunit.module('PluralizedWordHelper');\n\n  qunit.test('0', function (assert) {\n    var result = pluralized_word.pluralizedWord(0, 'minute');\n    assert.equal(result, '0 minutes');\n  });\n\n  qunit.test('1', function (assert) {\n    var result = pluralized_word.pluralizedWord(1, 'minute');\n    assert.equal(result, '1 minute');\n  });\n\n  qunit.test('2', function (assert) {\n    var result = pluralized_word.pluralizedWord(2, 'minute');\n    assert.equal(result, '2 minutes');\n  });\n\n  qunit.test('skipping count from output', function (assert) {\n    var result = pluralized_word.pluralizedWord(2, 'minute', false);\n    assert.equal(result, 'minutes');\n  });\n\n  qunit.test('passing in strings', function (assert) {\n    var result;\n\n    result = pluralized_word.pluralizedWord('5', 'minute');\n    assert.equal(result, '5 minutes');\n\n    result = pluralized_word.pluralizedWord('1', 'minute');\n    assert.equal(result, '1 minute');\n  });\n\n});","define('garaje/tests/unit/helpers/pluralized-word-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/helpers');\n  QUnit.test('unit/helpers/pluralized-word-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/helpers/pluralized-word-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/helpers/with-fallback-test', ['garaje/helpers/with-fallback', 'qunit'], function (with_fallback, qunit) {\n\n  'use strict';\n\n  qunit.module('WithFallbackHelper');\n\n  qunit.test('value is truthy', function (assert) {\n    assert.equal(with_fallback.withFallback('hello', 'goodbye'), 'hello');\n    assert.equal(with_fallback.withFallback(true, 'goodbye'), true);\n  });\n\n  qunit.test('value is falsy', function (assert) {\n    assert.equal(with_fallback.withFallback(null, 'goodbye'), 'goodbye');\n    assert.equal(with_fallback.withFallback('', 'goodbye'), 'goodbye');\n    assert.equal(with_fallback.withFallback(undefined, 'goodbye'), 'goodbye');\n  });\n\n});","define('garaje/tests/unit/helpers/with-fallback-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/helpers');\n  QUnit.test('unit/helpers/with-fallback-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/helpers/with-fallback-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/models/employees-filter-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleForModel('employees-filter', 'Unit | Model | employees filter', {\n    // Specify the other units that are required for this test.\n    needs: []\n  });\n\n  ember_qunit.test('it exists', function (assert) {\n    var model = this.subject();\n    // var store = this.store();\n    assert.ok(!!model);\n  });\n\n});","define('garaje/tests/unit/models/employees-filter-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/models');\n  QUnit.test('unit/models/employees-filter-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/models/employees-filter-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/models/subscription-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleForModel('subscription', 'Subscription');\n\n  ember_qunit.test('trialDaysLeft', function (assert) {\n    var model = this.subject();\n\n    Ember['default'].run(function () {\n      model.set('trialEndDate', moment().add(25, 'hours'));\n    });\n    assert.equal(model.get('trialDaysLeft'), 2, 'future date rounds up');\n\n    Ember['default'].run(function () {\n      model.set('trialEndDate', null);\n    });\n    assert.equal(model.get('trialDaysLeft'), 0, 'null displays as 0');\n\n    Ember['default'].run(function () {\n      model.set('trialEndDate', moment().subtract(1, 'hour'));\n    });\n    assert.equal(model.get('trialDaysLeft'), 0, 'past trial end date displays as 0');\n\n    Ember['default'].run(function () {\n      model.set('trialEndDate', moment().subtract(10, 'days'));\n    });\n    assert.equal(model.get('trialDaysLeft'), 0, 'past trial end date displays as 0');\n  });\n\n});","define('garaje/tests/unit/models/subscription-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/models');\n  QUnit.test('unit/models/subscription-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/models/subscription-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/services/google-sync-manager-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleFor('service:google-sync-manager', 'Unit | Service | google sync manager', {\n    // Specify the other units that are required for this test.\n    // needs: ['service:foo']\n  });\n\n  ember_qunit.test('#setFilter with all', function (assert) {\n    assert.expect(2);\n\n    var service = this.subject({\n      integrationsManager: {\n        saveGoogleApp: function saveGoogleApp(data) {\n          return Ember['default'].RSVP.resolve(data);\n        }\n      },\n      loadFilter: function loadFilter() {\n        assert.ok(true, 'updates filter in the store');\n      }\n    });\n\n    var company = Ember['default'].Object.create({\n      googleApp: {\n        content: Ember['default'].Object.create({\n          filters: {}\n        })\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.setFilter(company, 'unfiltered');\n    });\n\n    assert.equal(company.get('googleApp.content.filters.type'), 'unfiltered', 'sets unfiltered as filter');\n  });\n\n  ember_qunit.test('#setFilter with location', function (assert) {\n    assert.expect(3);\n\n    var service = this.subject({\n      integrationsManager: {\n        saveGoogleApp: function saveGoogleApp(data) {\n          return Ember['default'].RSVP.resolve(data);\n        }\n      },\n      loadFilter: function loadFilter() {\n        assert.ok(true, 'updates filter in the store');\n      }\n    });\n\n    var company = Ember['default'].Object.create({\n      googleApp: {\n        content: Ember['default'].Object.create({\n          filters: {}\n        })\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.setFilter(company, 'location', [{\n        location_id: 1,\n        query: 'foo*bar'\n      }, {\n        location_id: 2,\n        query: 'y'\n      }]);\n    });\n\n    assert.equal(company.get('googleApp.content.filters.type'), 'location', 'sets location as filter');\n    assert.deepEqual(company.get('googleApp.content.filters.data'), [{\n      location_id: 1,\n      query: 'foo*bar'\n    }, {\n      location_id: 2,\n      query: 'y'\n    }], 'sets specified filters');\n  });\n\n  ember_qunit.test('#setFilter company wide filter', function (assert) {\n    assert.expect(3);\n\n    var service = this.subject({\n      integrationsManager: {\n        saveGoogleApp: function saveGoogleApp(data) {\n          return Ember['default'].RSVP.resolve(data);\n        }\n      },\n      loadFilter: function loadFilter() {\n        assert.ok(true, 'updates filter in the store');\n      }\n    });\n\n    var company = Ember['default'].Object.create({\n      googleApp: {\n        content: Ember['default'].Object.create({\n          filters: {}\n        })\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.setFilter(company, 'company', {\n        query: 'foo*bar'\n      });\n    });\n\n    assert.equal(company.get('googleApp.content.filters.type'), 'company', 'sets company as filter');\n    assert.equal(company.get('googleApp.content.filters.data.query'), 'foo*bar', 'sets specified filter');\n  });\n\n});","define('garaje/tests/unit/services/google-sync-manager-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/services');\n  QUnit.test('unit/services/google-sync-manager-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/services/google-sync-manager-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/services/integrations-manager-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleFor('service:integrations-manager', 'Unit | Service | integrations manager', {\n    // Specify the other units that are required for this test.\n    // needs: ['service:foo']\n  });\n\n  ember_qunit.test('#loadIntegration', function (assert) {\n    assert.expect(13);\n\n    var service = this.subject({\n      subscription: {\n        canAccessZapier: true\n      },\n      store: {\n        push: function push(data) {\n          switch (data.type) {\n            case 'google-apps':\n              assert.ok(true, 'pushes data for google-app');\n              break;\n            case 'zapier-integrations':\n              assert.ok(true, 'pushes data for zapier-integration');\n              break;\n            case 'salesforce-integrations':\n              assert.ok(true, 'pushes data for salesforce-integration');\n              break;\n          }\n\n          assert.ok(!!data.attributes, 'includes attrs');\n\n          return {\n            id: 1\n          };\n        },\n        normalize: function normalize(type, data) {\n          switch (type) {\n            case 'google-app':\n              assert.ok(true, 'normalizes for google-app');\n              break;\n            case 'zapier-integration':\n              assert.ok(true, 'normalizes for zapier-integration');\n              break;\n            case 'salesforce-integration':\n              assert.ok(true, 'normalizes for salesforce-integration');\n              break;\n          }\n          assert.ok(!!data, 'includes data for normalization');\n\n          return data;\n        }\n      },\n      ajax: {\n        request: function request() {\n          return service.request.apply(service, arguments);\n        }\n      },\n      request: function request(url) {\n        assert.equal(url, '/api/v2/integrations/enabled', 'loads enabled integrations');\n\n        var data = [{\n          \"attributes\": {\n            \"created_at\": \"2015-07-20T21:42:09Z\",\n            \"email\": \"adolfo@signwithenvoy.com\",\n            \"enabled\": true,\n            \"filters\": {\n              \"type\": \"unfiltered\"\n            }\n          },\n          \"id\": 10,\n          \"type\": \"google-apps\"\n        }, {\n          \"attributes\": {\n            \"entry-created-count\": 0,\n            \"grantee-emails\": \"john@doe.com\",\n            \"invite-created-count\": 0,\n            \"sign-out-count\": 0\n          },\n          \"id\": 3,\n          \"links\": {\n            \"self\": \"/api/v2/integrations/zapier-integrations/3\"\n          },\n          \"relationships\": {\n            \"company\": {\n              \"data\": {\n                \"id\": 1,\n                \"type\": \"company\"\n              }\n            }\n          },\n          \"type\": \"zapier-integrations\"\n        }, {\n          \"attributes\": {\n            \"salesforce-user-id\": \"john@doe.com\"\n          },\n          \"id\": 10,\n          \"links\": {\n            \"self\": \"/api/v2/integrations/salesforce-integrations/10\"\n          },\n          \"relationships\": {\n            \"location\": {\n              \"data\": {\n                \"id\": 1,\n                \"type\": \"location\"\n              }\n            }\n          },\n          \"type\": \"salesforce-integrations\"\n        }];\n\n        return Ember['default'].RSVP.resolve({\n          data: data\n        });\n      }\n    });\n\n    var company = Ember['default'].Object.create({\n      id: 1,\n      then: function then(cbk) {\n        return cbk(company);\n      },\n      googleApp: {\n        connected: false\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.loadIntegration(company);\n    });\n  });\n\n  ember_qunit.test('#connectGoogleApps', function (assert) {\n    assert.expect(5);\n\n    var data = {\n      id: 1,\n      type: 'google-apps',\n      attributes: {\n        enabled: true,\n        connected_by: 'Kamal Fariz Mahyuddin',\n        connected_at: moment().format(),\n        ember: 'kamal@envoy.co'\n      }\n    };\n\n    var service = this.subject({\n      authManager: function authManager() {\n        assert.ok(true, 'uses auth manager');\n\n        return Ember['default'].RSVP.resolve({\n          data: data\n        });\n      },\n      store: {\n        push: function push(data) {\n          assert.equal(data.type, 'google-apps', 'push data with correct type');\n          assert.ok(!!data.attributes, 'includes data');\n\n          return {\n            id: 1\n          };\n        },\n        normalize: function normalize(type, data) {\n          assert.equal(type, 'google-app', 'uses correct normalization');\n          assert.ok(!!data, 'includes data');\n\n          return data;\n        }\n      }\n    });\n    var company = Ember['default'].Object.create({\n      googleApp: {},\n      then: function then(cbk) {\n        return cbk(company);\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.connectGoogleApps(company);\n    });\n  });\n\n  ember_qunit.test('#disconnectGoogleApps', function (assert) {\n    assert.expect(3);\n\n    var service = this.subject({});\n    var company = Ember['default'].Object.create({\n      googleApp: {\n        content: {\n          connected: true,\n          id: 1,\n          unloadRecord: function unloadRecord() {\n            assert.ok(true, 'called unload');\n          },\n          destroyRecord: function destroyRecord() {\n            assert.ok(true, 'calls destroy record');\n\n            return Ember['default'].RSVP.resolve({});\n          }\n        }\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.disconnectGoogleApps(company);\n    });\n\n    assert.ok(!company.googleApp.connected, 'disconnects google apps');\n  });\n\n  ember_qunit.test('#disableGoogleApps', function (assert) {\n    assert.expect(2);\n\n    var service = this.subject({});\n\n    var company = Ember['default'].Object.create({\n      googleApp: {\n        content: Ember['default'].Object.create({\n          id: 1,\n          enabled: false,\n          save: function save() {\n            assert.ok(true, 'called googleApps#save');\n          }\n        })\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.disableGoogleApps(company);\n    });\n\n    assert.ok(!company.get('googleApp.content.enabled'), 'disables google apps');\n  });\n\n  ember_qunit.test('#enableGoogleApps', function (assert) {\n    assert.expect(2);\n\n    var service = this.subject({});\n\n    var company = Ember['default'].Object.create({\n      googleApp: {\n        content: Ember['default'].Object.create({\n          serialize: function serialize() {\n            return company.get('googleApp.content');\n          },\n          id: 1,\n          enabled: false,\n          save: function save() {\n            assert.ok(true, 'called saved after enabling google app');\n          }\n        })\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.enableGoogleApps(company);\n    });\n\n    assert.ok(company.get('googleApp.content.enabled'), 'enables google apps');\n  });\n\n  ember_qunit.test('#hasDirtyIntegrations', function (assert) {\n    var location = Ember['default'].Object.create({\n      company: {\n        content: Ember['default'].Object.create({\n          googleApp: {\n            content: Ember['default'].Object.create({\n              id: 1,\n              connected: true,\n              isNew: true\n            })\n          },\n          saml: {\n            content: Ember['default'].Object.create({\n              isNew: true\n            })\n          }\n        })\n      },\n      'webhook.content': {\n        isNew: false\n      }\n    });\n\n    var service = this.subject({});\n\n    assert.ok(service.hasDirtyIntegrations(location), 'returns true in any integration is new');\n\n    location = Ember['default'].Object.create({\n      company: {\n        content: Ember['default'].Object.create({\n          googleApp: {\n            content: Ember['default'].Object.create({\n              id: 1,\n              connected: true,\n              isNew: false\n            })\n          },\n          saml: {\n            content: Ember['default'].Object.create({\n              isNew: false\n            })\n          }\n        })\n      },\n      webhook: {\n        content: Ember['default'].Object.create({\n          isNew: false\n        })\n      }\n    });\n\n    assert.ok(!service.hasDirtyIntegrations(location), 'returns false if all integrations are saved');\n\n    location = Ember['default'].Object.create({\n      company: {\n        content: Ember['default'].Object.create({\n          googleApp: {\n            content: Ember['default'].Object.create({\n              id: 1,\n              connected: true,\n              isNew: false,\n              isDirty: false\n            }),\n            saml: {\n              content: Ember['default'].Object.create({\n                isNew: false,\n                isDirty: true\n              })\n            }\n          }\n        })\n      },\n      webhook: {\n        content: Ember['default'].Object.create({\n          isNew: false,\n          isDirty: false\n        })\n      }\n    });\n  });\n\n  ember_qunit.test('#cleanIntegrations', function (assert) {\n    assert.expect(2);\n\n    var location = Ember['default'].Object.create({\n      company: {\n        content: Ember['default'].Object.create({\n          googleApp: {\n            content: Ember['default'].Object.create({\n              id: 1,\n              connected: true,\n              isNew: true,\n              destroyRecord: function destroyRecord() {\n                assert.ok(true, 'did call destroy record on new integration');\n              }\n            })\n          },\n          saml: {\n            content: Ember['default'].Object.create({\n              isNew: false\n            })\n          }\n        })\n      },\n      webhook: {\n        content: Ember['default'].Object.create({\n          isNew: false,\n          isDirty: true,\n          rollbackAttributes: function rollbackAttributes() {\n            assert.ok(true, 'did call rollback on dirty integration');\n          }\n        })\n      }\n    });\n\n    var service = this.subject({});\n    service.cleanIntegrations(location);\n  });\n\n  ember_qunit.test('#connectSlack', function (assert) {\n    assert.expect(7);\n\n    var service = this.subject({\n      authManager: function authManager(url) {\n        assert.ok(true, 'uses auth manager');\n\n        assert.equal(url, '/users/auth/slack?state=popup', 'uses the correct url');\n\n        return Ember['default'].RSVP.resolve({\n          team_name: 'the avengers'\n        });\n      }\n    });\n\n    var location = Ember['default'].Object.create({\n      company: {\n        content: Ember['default'].Object.create({\n          save: function save() {\n            assert.ok(true, 'saves company');\n          }\n        })\n      },\n      save: function save() {\n        assert.ok(true, 'saves location');\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.connectSlack(location);\n    });\n\n    assert.ok(Ember['default'].get(location, 'slackNotificationEnabled'), 'sets slackNotificationEnabled in location');\n    assert.ok(Ember['default'].get(location, 'company.content.slackConnected'), 'sets slackConnected in location');\n    assert.ok(Ember['default'].get(location, 'company.content.slackTeamName'), 'sets in location slackTeamName');\n  });\n\n  ember_qunit.test('#disconnectSlack', function (assert) {\n    assert.expect(4);\n\n    var service = this.subject({});\n\n    var location = Ember['default'].Object.create({\n      company: {\n        content: Ember['default'].Object.create({\n          slackConnected: true,\n          save: function save() {\n            assert.ok(true, 'saves company');\n          }\n        })\n      },\n      save: function save() {\n        assert.ok(true, 'saves location');\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.disconnectSlack(location);\n    });\n\n    assert.ok(!Ember['default'].get(location, 'slackNotificationEnabled'), 'sets slackNotificationEnabled as false');\n    assert.ok(!Ember['default'].get(location, 'company.content.slackConnected'), 'sets slackConnected as false');\n  });\n\n  ember_qunit.test('#connectHipchat', function (assert) {\n    assert.expect(2);\n\n    var location = Ember['default'].Object.create({\n      company: {\n        content: Ember['default'].Object.create({\n          id: 1\n        })\n      }\n    });\n\n    var service = this.subject({\n      store: {\n        createRecord: function createRecord(type, args) {\n          assert.equal(type, 'hipchat-connection', 'creates hipchat connection');\n\n          assert.equal(args.company.id, 1, 'sends company in args');\n\n          return {};\n        }\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.connectHipchat(location);\n    });\n  });\n\n  ember_qunit.test('#setupHipchat', function (assert) {\n    assert.expect(1);\n\n    var service = this.subject({\n      childWindow: function childWindow(url) {\n        assert.equal(url, 'https://hipchat.com/admin/addons?install_key=com.signwithenvoy.addon', 'opens hipchat url');\n\n        return Ember['default'].RSVP.resolve({});\n      }\n    });\n\n    service.setupHipchat(Ember['default'].Object.create({\n      hipchatServerDomain: ''\n    }));\n  });\n\n  ember_qunit.test('#disconnectHipchat', function (assert) {\n    assert.expect(6);\n\n    var service = this.subject({\n      store: {\n        normalize: function normalize(type, data) {\n          assert.equal(type, 'location', 'push data with correct type');\n          assert.ok(data.id, 1);\n          assert.ok(!data.hipchatNotificationEnabled, 'sets hipchat as disabled');\n\n          return {\n            id: 1\n          };\n        },\n        push: function push(data) {\n          return {\n            id: 1\n          };\n        },\n        unloadAll: function unloadAll(type) {\n          assert.equal(type, 'hipchat-connection', 'unloads all hipchat connections');\n        }\n      }\n    });\n\n    var location = Ember['default'].Object.create({\n      id: 1,\n      company: {\n        content: Ember['default'].Object.create({\n          hipchatConnected: true,\n          save: function save() {\n            assert.ok(true, 'saves company');\n\n            return Ember['default'].RSVP.resolve({});\n          }\n        })\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.disconnectHipchat(location);\n    });\n\n    assert.ok(!Ember['default'].get(location, 'company.content.hipchatConnected'), 'sets hipchatConnected as false');\n  });\n\n  ember_qunit.test('#handleEvent - with google_apps as provider', function (assert) {\n    assert.expect(1);\n\n    var service = this.subject({\n      syncManager: {\n        syncMessage: function syncMessage() {\n          assert.ok(true, 'calls sync message');\n        }\n      }\n    });\n\n    var location = Ember['default'].Object.create({\n      id: 1,\n      company: {\n        content: Ember['default'].Object.create({\n          id: 1\n        })\n      }\n    });\n\n    service.handleEvent({ provider: 'google_apps' }, location);\n  });\n\n  ember_qunit.test('#handleEvent - with one_login as provider', function (assert) {\n    assert.expect(1);\n\n    var service = this.subject({\n      syncManager: {\n        syncMessage: function syncMessage() {\n          assert.ok(true, 'calls sync message');\n        }\n      }\n    });\n\n    var location = Ember['default'].Object.create({\n      id: 1,\n      company: {\n        content: Ember['default'].Object.create({\n          id: 1\n        })\n      }\n    });\n\n    service.handleEvent({ provider: 'one_login' }, location);\n  });\n\n  ember_qunit.test('#handleEvent - with okta as provider', function (assert) {\n    assert.expect(1);\n\n    var service = this.subject({\n      syncManager: {\n        syncMessage: function syncMessage() {\n          assert.ok(true, 'calls sync message');\n        }\n      }\n    });\n\n    var location = Ember['default'].Object.create({\n      id: 1,\n      company: {\n        content: Ember['default'].Object.create({\n          id: 1\n        })\n      }\n    });\n\n    service.handleEvent({ provider: 'okta' }, location);\n  });\n\n  ember_qunit.test('#handleEvent - connected with hipchat as provider', function (assert) {\n    assert.expect(3);\n    var location = Ember['default'].Object.create({\n      id: 1,\n      company: {\n        content: Ember['default'].Object.create({\n          id: 1\n        })\n      }\n    });\n\n    var service = this.subject({\n      loadHipchat: function loadHipchat(type, data) {\n        assert.ok(true, 'calls loadHipchat');\n        assert.ok(data.connected, 'connected true');\n        assert.equal(data.company, location.get('company.content'), 'sends company');\n      }\n    });\n\n    service.handleEvent({\n      provider: 'hipchat',\n      state: 'connected'\n    }, location);\n  });\n\n  ember_qunit.test('#handleEvent - disconnected with hipchat as provider', function (assert) {\n    assert.expect(2);\n\n    var service = this.subject({\n      store: {\n        unloadAll: function unloadAll(type) {\n          assert.equal(type, 'hipchat-connection', 'unloads hipchat connection');\n        }\n      }\n    });\n\n    var location = Ember['default'].Object.create({\n      id: 1,\n      company: {\n        content: Ember['default'].Object.create({\n          id: 1,\n          reload: function reload() {\n            assert.ok(true, 'reloads company');\n          }\n        })\n      }\n    });\n\n    service.handleEvent({\n      provider: 'hipchat',\n      state: 'disconnected'\n    }, location);\n  });\n\n  ember_qunit.test('#loadZapier', function (assert) {\n    assert.expect(6);\n\n    var company = Ember['default'].Object.create({});\n\n    var service = this.subject({\n      subscription: {\n        canAccessZapier: true\n      },\n      store: {\n        push: function push(data, otherArg) {\n          assert.equal(data.type, 'zapier-integrations', 'push data with correct type');\n          assert.ok(!!data.attributes, 'includes attrs');\n          assert.ok(!otherArg, 'second arg is not included');\n\n          return {\n            id: 1\n          };\n        },\n        normalize: function normalize(type, data) {\n          assert.equal(type, 'zapier-integration', 'uses correct normalization');\n          assert.ok(!!data, 'includes data');\n\n          return data;\n        }\n      },\n      ajax: {\n        request: function request() {\n          return service.request.apply(service, arguments);\n        }\n      },\n      request: function request(url) {\n        assert.equal(url, '/api/v2/integrations/zapier-integrations/', 'request zapier integrations');\n        var data = [{\n          attributes: {\n            'entry-created-count': 2,\n            'grantee-emails': 'john+sf@doe.com,john@doe.com',\n            'invite-created-count': 1,\n            'sign-out-count': 0\n          },\n          id: 1,\n          type: 'zapier-integrations'\n        }];\n\n        return Ember['default'].RSVP.resolve({\n          data: data\n        });\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.loadZapier();\n    });\n  });\n\n  ember_qunit.test('#loadIfttt', function (assert) {\n    assert.expect(6);\n\n    var company = Ember['default'].Object.create({});\n\n    var service = this.subject({\n      store: {\n        push: function push(data, otherArg) {\n          assert.equal(data.type, 'ifttt-integrations', 'push data with correct type');\n          assert.ok(!!data.attributes, 'includes attrs');\n          assert.ok(!otherArg, 'second arg is not included');\n\n          return {\n            id: 1\n          };\n        },\n        normalize: function normalize(type, data) {\n          assert.equal(type, 'ifttt-integration', 'uses correct normalization');\n          assert.ok(!!data, 'includes data');\n\n          return data;\n        }\n      },\n      ajax: {\n        request: function request() {\n          return service.request.apply(service, arguments);\n        }\n      },\n      request: function request(url) {\n        assert.equal(url, '/api/v2/integrations/ifttt-integrations/', 'request ifttt integrations');\n        var data = [{\n          attributes: {\n            'grantee-emails': 'john+sf@doe.com,john@doe.com'\n          },\n          id: 1,\n          type: 'ifttt-integrations'\n        }];\n\n        return Ember['default'].RSVP.resolve({\n          data: data\n        });\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.loadIfttt();\n    });\n  });\n\n  ember_qunit.test('#connectSalesforce', function (assert) {\n    assert.expect(6);\n\n    var data = {\n      salesforce_access_grant_id: 1234\n    };\n\n    var company = Ember['default'].Object.create({\n      id: 5566\n    });\n\n    var service = this.subject({\n      authManager: function authManager(url) {\n        assert.equal(url, '/users/auth/salesforce?display=popup');\n        assert.ok(true, 'uses auth manager');\n        return Ember['default'].RSVP.resolve(data);\n      },\n      store: {\n        createRecord: function createRecord(type, payload) {\n          assert.equal(type, 'salesforce-integration');\n          assert.equal(payload.company.get('id'), 5566);\n          assert.equal(payload.salesforceAccessGrantId, 1234);\n          return Ember['default'].Object.create({\n            save: function save() {\n              assert.ok(true, 'calls save');\n            }\n          });\n        }\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.connectSalesforce(company);\n    });\n  });\n\n  ember_qunit.test('#disconnectSalesforce', function (assert) {\n    assert.expect(2);\n\n    var service = this.subject({});\n    var company = Ember['default'].Object.create({\n      salesforceIntegration: {\n        content: {\n          id: 1,\n          salesforceUserId: 'victor@envoy.co',\n          unloadRecord: function unloadRecord() {\n            assert.ok(true, 'called unload');\n          },\n          destroyRecord: function destroyRecord() {\n            assert.ok(true, 'calls destroy record');\n\n            return Ember['default'].RSVP.resolve({});\n          }\n        }\n      }\n    });\n\n    Ember['default'].run(function () {\n      service.disconnectSalesforce(company);\n    });\n  });\n\n});","define('garaje/tests/unit/services/integrations-manager-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/services');\n  QUnit.test('unit/services/integrations-manager-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/services/integrations-manager-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/services/locations-test', ['ember-qunit'], function (ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.moduleFor('service:locations', 'Unit | Service | locations', {\n    // Specify the other units that are required for this test.\n    // needs: ['service:foo']\n  });\n\n  // Replace this with your real tests.\n  ember_qunit.test('it exists', function (assert) {\n    var service = this.subject();\n    assert.ok(service);\n  });\n\n});","define('garaje/tests/unit/services/locations-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/services');\n  QUnit.test('unit/services/locations-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/services/locations-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/services/sync-manager-test', ['ember-qunit', 'ember'], function (ember_qunit, Ember) {\n\n  'use strict';\n\n  ember_qunit.moduleFor('service:sync-manager', 'Unit | Service | Sync manager', {});\n\n  ember_qunit.test('#syncMessage', function (assert) {\n    assert.expect(7);\n    var service = this.subject({\n      store: {\n        push: function push() {},\n        normalize: function normalize(type, payload) {\n          assert.equal(type, 'company', 'uses correct type for store');\n          assert.equal(payload.employeesSyncState, 'synchronizing', 'sets state as synchronizing');\n          assert.equal(payload.id, 1, 'uses id');\n        }\n      }\n    });\n\n    var message = {\n      provider: 'google_apps',\n      state: 'synchronizing'\n    };\n\n    var company = Ember['default'].Object.create({\n      id: 1\n    });\n\n    service.syncMessage(message, company);\n\n    message.state = 'finished';\n\n    var finishedAt = moment().format();\n    message.last_sync_at = finishedAt;\n\n    service.store = {\n      push: function push() {},\n      normalize: function normalize(type, payload) {\n        assert.equal(type, 'company', 'uses correct type for store');\n        assert.equal(payload.employeesSyncState, 'finished', 'sets state as finished');\n        assert.equal(payload.id, 1, 'uses id');\n        assert.equal(payload.employeesLastSyncAt, finishedAt, 'sets finished at date');\n      }\n    };\n\n    company = Ember['default'].Object.create({\n      id: 1\n    });\n\n    service.syncMessage(message, company);\n  });\n\n  ember_qunit.test('#usersUrl', function (assert) {\n    var service = this.subject({});\n\n    var okta = Ember['default'].Object.create({\n      id: 1,\n      constructor: {\n        typeKey: 'oktaIntegration'\n      }\n    });\n    var oneLogin = Ember['default'].Object.create({\n      id: 1,\n      constructor: {\n        typeKey: 'oneLogin'\n      }\n    });\n\n    assert.equal(service.usersUrl(okta), '/api/v2/integrations/okta/1/users', 'returns okta url');\n    assert.equal(service.usersUrl(oneLogin), '/api/v2/integrations/one-logins/1/users', 'returns one login url');\n  });\n\n});","define('garaje/tests/unit/services/sync-manager-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/services');\n  QUnit.test('unit/services/sync-manager-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/services/sync-manager-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/charge-line-item-test', ['garaje/utils/charge-line-item', 'qunit', 'ember'], function (ChargeLineItem, qunit, Ember) {\n\n  'use strict';\n\n  var lineItem;\n\n  qunit.module('ChargeLineItem', {\n    beforeEach: function beforeEach() {\n      lineItem = ChargeLineItem['default'].create({\n        quantity: 1,\n        period: 'monthly',\n        plan: {\n          id: 'standard',\n          name: 'Standard',\n          monthlyPrice: 120,\n          yearlyPrice: 100\n        },\n        periodStart: moment('2015-01-01', 'YYYY-MM-DD').unix(),\n        periodEnd: moment('2015-01-31', 'YYYY-MM-DD').unix(),\n        newPeriodStart: moment('2015-01-16', 'YYYY-MM-DD').unix()\n      });\n    }\n  });\n\n  qunit.test('quantity changes', function (assert) {\n    Ember['default'].run(lineItem, 'set', 'quantity', 3);\n    assert.equal(lineItem.get('description'), '3 x Standard monthly at $120/mo (Jan 16 2015 - Jan 31 2015)');\n    assert.equal(lineItem.get('amount'), 180.00);\n  });\n\n  qunit.test('plan changes', function (assert) {\n    Ember['default'].run(lineItem, 'set', 'plan', {\n      id: 'premium',\n      name: 'Premium',\n      monthlyPrice: 240,\n      yearlyPrice: 200\n    });\n    assert.equal(lineItem.get('description'), '1 x Premium monthly at $240/mo (Jan 16 2015 - Jan 31 2015)');\n    assert.equal(lineItem.get('amount'), 120.00);\n  });\n\n  qunit.test('period changes from monthly to yearly', function (assert) {\n    Ember['default'].run(lineItem, 'set', 'newPeriod', 'yearly');\n    assert.equal(lineItem.get('description'), '1 x Standard yearly at $100/mo (Jan 16 2015 - Jan 16 2016)');\n    assert.equal(lineItem.get('amount'), 1200.00);\n  });\n\n  qunit.test('period changes from yearly to monthly', function (assert) {\n    Ember['default'].run(lineItem, 'set', 'period', 'yearly');\n    Ember['default'].run(lineItem, 'set', 'periodEnd', moment('2016-01-01', 'YYYY-MM-DD').unix());\n    Ember['default'].run(lineItem, 'set', 'newPeriod', 'monthly');\n    assert.equal(lineItem.get('description'), '1 x Standard monthly at $120/mo (Jan 16 2015 - Feb 16 2015)');\n    assert.equal(lineItem.get('amount'), 120.00);\n  });\n\n  qunit.test('period changes to equal newPeriod but periodEnd is null', function (assert) {\n    // this scenario is when trial is subscribing to a plan, but the\n    // backend raised an error. This keeps the proration calculation\n    // stable by not returning null for newPeriodEnd\n    var now = moment();\n\n    lineItem = ChargeLineItem['default'].create({\n      quantity: 1,\n      period: null,\n      newPeriod: 'yearly',\n      plan: {\n        id: 'standard',\n        name: 'Standard',\n        monthlyPrice: 120,\n        yearlyPrice: 100\n      },\n      periodStart: null,\n      newPeriodStart: now.unix(),\n      periodEnd: null\n    });\n\n    var oneYearFromNow = now.add(1, 'year');\n    assert.equal(lineItem.get('newPeriodEnd'), oneYearFromNow.unix(), 'newPeriodEnd is a year from now');\n    assert.equal(lineItem.get('amount'), 1200, 'amount is full price for the year');\n\n    Ember['default'].run(lineItem, 'set', 'period', 'yearly'); // when the user hits the subscribe button\n    assert.equal(lineItem.get('newPeriodEnd'), oneYearFromNow.unix(), 'newPeriodEnd is still a year from now');\n    assert.equal(lineItem.get('amount'), 1200, 'amount is still full price for the year');\n  });\n\n});","define('garaje/tests/unit/utils/charge-line-item-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/charge-line-item-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/charge-line-item-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/contains-computed-test', ['ember', 'qunit', 'garaje/utils/contains-computed'], function (Ember, qunit, containsComputed) {\n\n  'use strict';\n\n  qunit.module('containsComputed');\n\n  qunit.test('array property doesnt exist', function (assert) {\n\n    var emclass = Ember['default'].Object.extend({\n      array: ['one', 'two', 'three'],\n      doesContain: containsComputed['default']('arrayx', 'one')\n    });\n\n    var instance = emclass.create();\n\n    assert.ok(!instance.get('doesContain'));\n  });\n\n  qunit.test('array property is not an array', function (assert) {\n\n    var emclass = Ember['default'].Object.extend({\n      array: 'yes',\n      doesContain: containsComputed['default']('array', 'one')\n    });\n\n    var instance = emclass.create();\n\n    assert.ok(!instance.get('doesContain'));\n  });\n\n  qunit.test('array is replaced', function (assert) {\n\n    var emclass = Ember['default'].Object.extend({\n      array: ['one', 'two', 'three'],\n      doesContain: containsComputed['default']('array', 'one')\n    });\n\n    var instance = emclass.create();\n\n    Ember['default'].run(function () {\n      instance.set('array', ['nine', 'ten', 'eleven']);\n    });\n\n    assert.ok(!instance.get('doesContain'));\n  });\n\n  qunit.test('array is changed', function (assert) {\n\n    var emclass = Ember['default'].Object.extend({\n      array: ['one', 'two', 'three'],\n      doesContain: containsComputed['default']('array', 'one')\n    });\n\n    var instance = emclass.create();\n\n    Ember['default'].run(function () {\n      instance.get('array').removeObject('one');\n    });\n\n    assert.ok(!instance.get('doesContain'));\n  });\n\n  qunit.test('item is in array', function (assert) {\n    var emclass = Ember['default'].Object.extend({\n      array: ['one', 'two', 'three'],\n      doesContain: containsComputed['default']('array', 'one')\n    });\n\n    var instance = emclass.create();\n\n    assert.ok(instance.get('doesContain'));\n  });\n\n  qunit.test('item is not in array', function (assert) {\n    var emclass = Ember['default'].Object.extend({\n      array: ['one', 'two', 'three'],\n      doesContain: containsComputed['default']('array', 'ten')\n    });\n\n    var instance = emclass.create();\n\n    assert.ok(!instance.get('doesContain'));\n  });\n\n});","define('garaje/tests/unit/utils/contains-computed-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/contains-computed-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/contains-computed-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/discount-line-item-test', ['garaje/utils/discount-line-item', 'qunit', 'ember'], function (DiscountLineItem, qunit, Ember) {\n\n  'use strict';\n\n  var lineItem;\n\n  qunit.module('DiscountLineItem', {\n    beforeEach: function beforeEach() {\n      lineItem = DiscountLineItem['default'].create({\n        price: 50,\n        coupon: { percentOff: 25 }\n      });\n    }\n  });\n\n  qunit.test('description', function (assert) {\n    assert.equal(lineItem.get('description'), '25% discount');\n    Ember['default'].run(lineItem, 'set', 'coupon', { amountOff: 118.236 });\n    assert.equal(lineItem.get('description'), '$118.24 discount', 'it rounds it up');\n    Ember['default'].run(lineItem, 'set', 'coupon', { amountOff: 118.236, percentOff: 18 });\n    assert.equal(lineItem.get('description'), '18% discount', 'percentOff discount takes precedence if both specified');\n  });\n\n  qunit.test('amount', function (assert) {\n    assert.equal(lineItem.get('amount'), -12.5, 'returns percentage of price in negative');\n    Ember['default'].run(lineItem, 'set', 'coupon', { amountOff: 2.50 });\n    assert.equal(lineItem.get('amount'), -2.50, 'returns amount off in negative');\n    Ember['default'].run(lineItem, 'set', 'coupon', { amountOff: 2.50, percentOff: 10 });\n    assert.equal(lineItem.get('amount'), -5, 'percentOff takes precedence');\n  });\n\n  qunit.test('invalid coupon', function (assert) {\n    Ember['default'].run(lineItem, 'set', 'coupon.valid', false);\n    assert.equal(lineItem.get('description'), '25% discount (expired)');\n    assert.equal(lineItem.get('amount'), 0);\n    Ember['default'].run(lineItem, 'set', 'coupon', null);\n    assert.equal(lineItem.get('description'), null);\n    assert.equal(lineItem.get('amount'), 0);\n  });\n\n});","define('garaje/tests/unit/utils/discount-line-item-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/discount-line-item-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/discount-line-item-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/flash-promise-test', ['garaje/utils/flash-promise', 'qunit', 'ember'], function (flashPromise, qunit, Ember) {\n\n  'use strict';\n\n  var actualMessage, controller;\n\n  var makeResponse = function makeResponse(status, obj) {\n    var responseText, responseJSON;\n\n    if (typeof obj === 'string') {\n      responseText = obj;\n    } else if (typeof obj === 'object') {\n      responseText = JSON.stringify(obj);\n      responseJSON = obj;\n    } else {\n      responseText = '';\n    }\n\n    var jqXHR = {\n      statusText: status,\n      responseText: responseText,\n      responseJSON: responseJSON\n    };\n\n    return Ember['default'].RSVP.reject(jqXHR.responseJSON);\n  };\n\n  var responseJSON = function responseJSON(obj) {\n    return makeResponse('Server Error', obj);\n  };\n\n  var statusText = function statusText(obj) {\n    return Ember['default'].RSVP.reject({ message: 'Bad Request' });\n  };\n\n  qunit.module('flashPromise', {\n    beforeEach: function beforeEach() {\n      controller = {\n        send: function send(action, type, message) {\n          if (action === 'showFlash') {\n            actualMessage = message;\n          }\n        }\n      };\n    }\n  });\n\n  qunit.test('jqXHR with error json as an array', function (assert) {\n    assert.expect(1);\n    Ember['default'].run(function () {\n      flashPromise['default'](responseJSON({ errors: ['name is required', 'email is required'] }), controller);\n    });\n    assert.equal(actualMessage, 'Error: name is required, email is required', 'showFlash with message ' + actualMessage);\n  });\n\n  qunit.test('jqXHR with an error as a string', function (assert) {\n    assert.expect(1);\n    Ember['default'].run(function () {\n      flashPromise['default'](responseJSON({ errors: ['name is required'] }), controller);\n    });\n    assert.equal(actualMessage, 'Error: name is required', 'showFlash with message ' + actualMessage);\n  });\n\n  qunit.test('jqXHR as a bare string', function (assert) {\n    assert.expect(1);\n    Ember['default'].run(function () {\n      flashPromise['default'](responseJSON({ errors: ['name is required'] }), controller);\n    });\n    assert.equal(actualMessage, 'Error: name is required', 'showFlash with message ' + actualMessage);\n  });\n\n  qunit.test('jqXHR as an empty JSON', function (assert) {\n    assert.expect(1);\n    Ember['default'].run(function () {\n      flashPromise['default'](responseJSON({ errors: ['Server Error'] }), controller);\n    });\n    assert.equal(actualMessage, 'Error: Server Error', 'showFlash with message ' + actualMessage);\n  });\n\n  qunit.test('jqXHR with no responseText', function (assert) {\n    assert.expect(1);\n    Ember['default'].run(function () {\n      flashPromise['default'](statusText('Bad Request'), controller);\n    });\n    assert.equal(actualMessage, 'Error: Bad Request', 'showFlash with message ' + actualMessage);\n  });\n\n});","define('garaje/tests/unit/utils/flash-promise-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/flash-promise-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/flash-promise-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/get-hostname-test', ['garaje/utils/get-hostname', 'qunit'], function (getHostname, qunit) {\n\n  'use strict';\n\n  qunit.module('getHostname');\n\n  qunit.test('it works', function (assert) {\n    assert.equal(getHostname['default']('chat.envoy.co'), 'chat.envoy.co');\n    assert.equal(getHostname['default']('  chat.envoy.co      '), 'chat.envoy.co');\n    assert.equal(getHostname['default']('https://chat.envoy.co'), 'chat.envoy.co');\n    assert.equal(getHostname['default']('https://chat.envoy.co/admin/addons'), 'chat.envoy.co');\n    assert.equal(getHostname['default']('localhost:4200'), 'localhost:4200');\n    assert.equal(getHostname['default']('https://localhost:4200'), 'localhost:4200');\n    assert.equal(getHostname['default'](''), null);\n    assert.equal(getHostname['default'](undefined), null);\n    assert.equal(getHostname['default'](null), null);\n    assert.equal(getHostname['default'](123), null);\n  });\n\n});","define('garaje/tests/unit/utils/get-hostname-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/get-hostname-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/get-hostname-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/location-line-item-test', ['garaje/utils/location-line-item', 'qunit', 'ember'], function (LocationLineItem, qunit, Ember) {\n\n  'use strict';\n\n  var lineItem;\n  var text = function text(str) {\n    return Ember['default'].$('<div>').html(str.toString()).text();\n  };\n\n  qunit.module('LocationLineItem', {\n    beforeEach: function beforeEach() {\n      lineItem = LocationLineItem['default'].create({\n        location: {\n          name: 'SF',\n          nameWithCompanyName: 'Acme SF'\n        },\n        plan: {\n          monthlyPrice: 119,\n          yearlyPrice: 99\n        }\n      });\n    }\n  });\n\n  qunit.test('description', function (assert) {\n    Ember['default'].run(lineItem, 'set', 'period', 'monthly');\n    assert.equal(text(lineItem.get('description')), 'Acme SF at $119/mo');\n    Ember['default'].run(lineItem, 'set', 'period', 'yearly');\n    assert.equal(text(lineItem.get('description')), 'Acme SF at $99/mo');\n    Ember['default'].run(lineItem, 'set', 'location.name', '');\n    assert.equal(text(lineItem.get('description')), 'New Location at $99/mo');\n    Ember['default'].run(lineItem, 'set', 'location.name', 'hacker');\n    Ember['default'].run(lineItem, 'set', 'location.nameWithCompanyName', '<script>alert(\"hax0rs\");</script>');\n    assert.equal(text(lineItem.get('description')), '<script>alert(\"hax0rs\");</script> at $99/mo');\n  });\n\n  qunit.test('amount', function (assert) {\n    Ember['default'].run(lineItem, 'set', 'period', 'monthly');\n    assert.equal(lineItem.get('amount'), 119.00);\n    Ember['default'].run(lineItem, 'set', 'period', 'yearly');\n    assert.equal(lineItem.get('amount'), 1188.00);\n  });\n\n});","define('garaje/tests/unit/utils/location-line-item-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/location-line-item-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/location-line-item-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/refund-line-item-test', ['garaje/utils/refund-line-item', 'qunit', 'ember'], function (RefundLineItem, qunit, Ember) {\n\n  'use strict';\n\n  var lineItem;\n\n  qunit.module('RefundLineItem', {\n    beforeEach: function beforeEach() {\n      lineItem = RefundLineItem['default'].create({\n        quantity: 1,\n        period: 'monthly',\n        plan: {\n          id: 'standard',\n          name: 'Standard',\n          monthlyPrice: 120,\n          yearlyPrice: 100\n        },\n        periodStart: moment('2015-01-01', 'YYYY-MM-DD').unix(),\n        periodEnd: moment('2015-01-31', 'YYYY-MM-DD').unix()\n      });\n    }\n  });\n\n  qunit.test('description', function (assert) {\n    // default\n    assert.equal(lineItem.get('description'), '1 x Standard monthly at $120/mo (Jan 1 2015 - Jan 31 2015)');\n\n    Ember['default'].run(lineItem, 'set', 'newPeriodEnd', moment('2015-01-21', 'YYYY-MM-DD').unix()); // 2/3 of the way into the billing period\n    assert.equal(lineItem.get('description'), '1 x Standard monthly at $120/mo (Jan 1 2015 - Jan 21 2015)');\n\n    Ember['default'].run(lineItem, 'set', 'newPeriodEnd', moment('2015-01-11', 'YYYY-MM-DD').unix()); // 1/3 of the way into the billing period\n    assert.equal(lineItem.get('description'), '1 x Standard monthly at $120/mo (Jan 1 2015 - Jan 11 2015)');\n  });\n\n  qunit.test('amount', function (assert) {\n    // default\n    assert.equal(lineItem.get('amount'), 0.00);\n\n    Ember['default'].run(lineItem, 'set', 'newPeriodEnd', moment('2015-01-21', 'YYYY-MM-DD').unix()); // 2/3 of the way into the billing period\n    assert.equal(lineItem.get('amount'), -40.00);\n\n    Ember['default'].run(lineItem, 'set', 'newPeriodEnd', moment('2015-01-11', 'YYYY-MM-DD').unix()); // 1/3 of the way into the billing period\n    assert.equal(lineItem.get('amount'), -80.00);\n\n    Ember['default'].run(lineItem, 'set', 'quantity', 2);\n    assert.equal(lineItem.get('amount'), -160.00);\n  });\n\n});","define('garaje/tests/unit/utils/refund-line-item-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/refund-line-item-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/refund-line-item-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/simple-ledger-test', ['garaje/utils/simple-ledger', 'qunit'], function (SimpleLedger, qunit) {\n\n  'use strict';\n\n  qunit.module('SimpleLedger');\n\n  qunit.test('calculates the total', function (assert) {\n    var ledger = SimpleLedger['default'].create({\n      lineItems: [{ amount: 1188.00 }, { amount: 1188.00 }],\n      coupon: { valid: true, percentOff: 25 }\n    });\n    assert.equal(ledger.get('total'), 1782.00);\n  });\n\n  qunit.test('calculates the prorated subtotal', function (assert) {\n    var ledger = SimpleLedger['default'].create({\n      refund: { amount: -1138.50 },\n      charge: { amount: 2277.00 }\n    });\n    assert.equal(ledger.get('proratedSubtotal'), 1138.50);\n  });\n\n  qunit.test('calculates the amount due now', function (assert) {\n    var ledger = SimpleLedger['default'].create({\n      refund: { amount: -1138.50 },\n      charge: { amount: 2277.00 },\n      coupon: { valid: true, percentOff: 25 },\n      creditBalance: -50.00\n    });\n    assert.equal(parseFloat(ledger.get('dueNow')).toFixed(2), '803.88');\n  });\n\n  qunit.test('it doesnt apply an invalid coupon', function (assert) {\n    var ledger = SimpleLedger['default'].create({\n      lineItems: [{ amount: 1188.00 }, { amount: 1188.00 }],\n      refund: { amount: -1138.50 },\n      charge: { amount: 2277.00 },\n      coupon: { valid: false, percentOff: 25 },\n      creditBalance: 0\n    });\n    assert.equal(ledger.get('total'), 2376.00);\n    assert.equal(ledger.get('dueNow'), 1138.50);\n  });\n\n  qunit.test('doesnt crash when coupon is null', function (assert) {\n    var ledger = SimpleLedger['default'].create({\n      lineItems: [{ amount: 1188.00 }, { amount: 1188.00 }]\n    });\n    assert.equal(ledger.get('total'), 2376.00);\n  });\n\n});","define('garaje/tests/unit/utils/simple-ledger-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/simple-ledger-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/simple-ledger-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/unit/utils/url-builder-test', ['garaje/utils/url-builder', 'qunit'], function (urlBuilder, qunit) {\n\n  'use strict';\n\n  qunit.module('utils:url-builder');\n\n  qunit.test('#buildUrl', function (assert) {\n    assert.equal(urlBuilder.buildUrl('foo_url'), '/foo_url', 'adds slash if not included');\n\n    assert.equal(urlBuilder.buildUrl('/url_with_slash'), '/url_with_slash', 'keeps slash if included');\n  });\n\n  qunit.test('#photoUrl', function (assert) {\n    assert.equal(urlBuilder['default'].photoUrl('foo_url'), '/foo_url', 'generates photoUrl');\n  });\n\n  qunit.test('#envoyLoginUrl', function (assert) {\n    assert.equal(urlBuilder['default'].envoyLoginUrl('IAmTheAccessToken'), '/users/auth/doorkeeper/callback?access_token=IAmTheAccessToken', 'generates login url');\n  });\n\n  qunit.test('#envoyLogoutUrl', function (assert) {\n    assert.equal(urlBuilder['default'].envoyLogoutUrl('IAmTheAccessToken'), '/users/sign_out?access_token=IAmTheAccessToken', 'generates logout url');\n  });\n\n  qunit.test('v1#subscriptionUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.subscriptionUrl(), '/api/v1/subscription', 'generates subscriptions url');\n  });\n\n  qunit.test('v1#adminUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.adminUrl(), '/api/v1/admins/me', 'generates admin url');\n  });\n\n  qunit.test('v1#entriesCalendarUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.entriesCalendarUrl('12345', '05-23-2015'), '/api/v1/entries/calendar?location_id=12345&date=05-23-2015', 'generates entries calendar url');\n  });\n\n  qunit.test('#exportEntriesUrl', function (assert) {\n    assert.equal(urlBuilder['default'].exportEntriesUrl('12345', '05-23-2015'), '/entries?date=05-23-2015&location_id=12345', 'generates export entries url');\n\n    assert.equal(urlBuilder['default'].exportEntriesUrl('12345'), '/entries?location_id=12345', 'works without date');\n\n    assert.equal(urlBuilder['default'].exportEntriesUrl('12345', '05-23-2015', 'test@example.com'), '/entries?query=test@example.com&location_id=12345', 'works with query string');\n  });\n\n  qunit.test('v1#printBadgesUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.printBadgesUrl('12345'), '/api/v1/locations/12345/print_badges', 'generates print badges url');\n  });\n\n  qunit.test('v1#reprintBadgeUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.reprintBadgeUrl('12345'), '/api/v1/entries/12345/print_badge', 'generates reprint badge url');\n  });\n\n  qunit.test('v1#welcomeImageUploadUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.welcomeImageUploadUrl(12345), '/api/v1/configs/12345', 'generates welcome image upload url');\n  });\n\n  qunit.test('v1#slideshowUploadUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.slideshowUploadUrl(), '/api/v1/slideshows', 'generates slides show upload url');\n  });\n\n  qunit.test('v1#refreshConfigUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.refreshConfigUrl(12345), '/api/v1/configs/12345/refresh', 'generates slides show upload url');\n  });\n\n  qunit.test('v1#boxUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.boxUrl(12345), '/api/v1/devices/12345/integrations/box', 'generates box url');\n  });\n\n  qunit.test('v1#locationUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.locationUrl(12345), '/api/v1/locations/12345', 'generates location url');\n  });\n\n  qunit.test('#slackAuthUrl', function (assert) {\n    assert.equal(urlBuilder['default'].slackAuthUrl(), '/users/auth/slack?state=popup', 'generates slack auth url');\n  });\n\n  qunit.test('#oauthAuthorizeUrl', function (assert) {\n    assert.equal(urlBuilder['default'].oauthAuthorizeUrl('12345', 'foo_bar'), '/oauth/authorize?client_id=12345&redirect_uri=foo_bar&response_type=token', 'generates oauth url');\n  });\n\n  qunit.test('v1#sendInvitePreviewUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.sendInvitePreviewUrl(12345), '/api/v1/locations/12345/send_invite_preview', 'generates send invite preview url');\n  });\n\n  qunit.test('v1#invitePreviewUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.invitePreviewUrl(12345), '/api/v1/locations/12345/invite_preview', 'generates invite preview url');\n  });\n\n  qunit.test('v1#employeesUploadUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.employeesUploadUrl(), '/api/v1/employees/upload', 'generates employees upload url');\n  });\n\n  qunit.test('#boxAuthUrl', function (assert) {\n    assert.equal(urlBuilder['default'].boxAuthUrl(), '/users/auth/box?state=popup', 'generates box auth url');\n  });\n\n  qunit.test('#googleAuthUrl', function (assert) {\n    assert.equal(urlBuilder['default'].googleAuthUrl(), '/users/auth/google_oauth2?state=popup', 'generates google auth url');\n  });\n\n  qunit.test('#entriesCsvUrl', function (assert) {\n    assert.equal(urlBuilder['default'].entriesCsvUrl('2015-10-01', '2015-10-05'), '/entries?from_date=2015-10-01&to_date=2015-10-05&format=csv', 'generates entries url with from and to data');\n  });\n\n  qunit.test('v1#generateApiKeyUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.generateApiKeyUrl(23), '/api/v1/locations/23/generate_key', 'generates generate api key url');\n  });\n\n  qunit.test('v1#generatePreRegistrationLinkUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.generatePreRegistrationLinkUrl(14), '/api/v1/locations/14/generate_pre_registration_link', 'generates generate pre-registration link url');\n  });\n\n  qunit.test('v1#generateSecurityDeskLinkUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v1.generateSecurityDeskLinkUrl(1), '/api/v1/locations/1/generate_security_desk_link', 'generates generate security desk link url');\n  });\n\n  qunit.test('#samlConsumeUrl', function (assert) {\n    assert.equal(urlBuilder['default'].samlConsumeUrl(), '/saml/consume', 'generates saml consume url');\n  });\n\n  qunit.test('#samlInitUrl', function (assert) {\n    assert.equal(urlBuilder['default'].samlInitUrl(12), '/saml/init/12', 'generates saml init url');\n  });\n\n  qunit.test('v2#integrations#enabled', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.enabled(), '/api/v2/integrations/enabled', 'generates enabled integrations url');\n  });\n\n  qunit.test('v2#integrations#googleAppsUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.googleAppsUrl(), '/api/v2/integrations/google-apps/', 'generates google apps integration url');\n  });\n\n  qunit.test('v2#integrations#googleAppsUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.googleAppsUrl(1), '/api/v2/integrations/google-apps/1', 'generates google apps integration url with id');\n  });\n\n  qunit.test('v2#integrations#googleAppUsersUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.googleAppUsersUrl(1), '/api/v2/integrations/google-apps/1/users', 'generates google app users url');\n  });\n\n  qunit.test('v2#employees#synchronizeUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.employees.synchronizeUrl(), '/api/v2/employees/synchronize', 'generates employees synchronize url');\n  });\n\n  qunit.test('v2#integrations#zapierIntegrationsUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.zapierIntegrationsUrl(), '/api/v2/integrations/zapier-integrations/', 'generates zapier integration url');\n  });\n\n  qunit.test('v2#integrations#zapierIntegrationsUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.zapierIntegrationsUrl(1), '/api/v2/integrations/zapier-integrations/1', 'generates zapier integration url with id');\n  });\n\n  qunit.test('v2#integrations#iftttIntegrationsUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.iftttIntegrationsUrl(), '/api/v2/integrations/ifttt-integrations/', 'generates ifttt integration url');\n  });\n\n  qunit.test('v2#integrations#iftttIntegrationsUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.iftttIntegrationsUrl(1), '/api/v2/integrations/ifttt-integrations/1', 'generates ifttt integration url with id');\n  });\n\n  qunit.test('v2#integrations#oneLoginUsersUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.oneLoginUsersUrl(1), '/api/v2/integrations/one-logins/1/users', 'generates one login users url');\n  });\n\n  qunit.test('v2#integrations#oneLoginCustomAttributesUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.oneLoginCustomAttributesUrl(1), '/api/v2/integrations/one-logins/1/custom-attributes', 'generates one login custom attributes url');\n  });\n\n  qunit.test('v2#integrations#oktaUsersUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.oktaUsersUrl(1), '/api/v2/integrations/okta/1/users', 'generates okta users url');\n  });\n\n  qunit.test('v2#integrations#oktaCustomAttributesUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.oktaCustomAttributesUrl(1), '/api/v2/integrations/okta/1/custom-attributes', 'generates okta custom attributes url');\n  });\n\n  qunit.test('v2#integrations#oktaGroupsUrl', function (assert) {\n    assert.equal(urlBuilder['default'].v2.integrations.oktaGroupsUrl(1), '/api/v2/integrations/okta/1/groups', 'generates okta groups url');\n  });\n\n});","define('garaje/tests/unit/utils/url-builder-test.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - unit/utils');\n  QUnit.test('unit/utils/url-builder-test.js should pass jshint', function(assert) { \n    assert.ok(true, 'unit/utils/url-builder-test.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/card-types.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/card-types.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/card-types.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/charge-line-item.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/charge-line-item.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/charge-line-item.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/child-window.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/child-window.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/child-window.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/contains-computed.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/contains-computed.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/contains-computed.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/discount-line-item.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/discount-line-item.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/discount-line-item.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/falsy-computed.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/falsy-computed.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/falsy-computed.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/flash-promise.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/flash-promise.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/flash-promise.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/flash.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/flash.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/flash.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/geocode.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/geocode.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/geocode.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/get-hostname.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/get-hostname.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/get-hostname.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/location-line-item.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/location-line-item.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/location-line-item.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/mapped-field.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/mapped-field.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/mapped-field.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/nda-text.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/nda-text.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/nda-text.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/oauth.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/oauth.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/oauth.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/onboarding-flash-promise.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/onboarding-flash-promise.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/onboarding-flash-promise.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/prorated-line-item.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/prorated-line-item.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/prorated-line-item.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/refund-line-item.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/refund-line-item.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/refund-line-item.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/search-computed.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/search-computed.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/search-computed.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/simple-ledger.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/simple-ledger.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/simple-ledger.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/toggleable.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/toggleable.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/toggleable.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/tzlookup.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/tzlookup.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/tzlookup.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/uploader.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/uploader.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/uploader.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/utils/url-builder.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - utils');\n  QUnit.test('utils/url-builder.js should pass jshint', function(assert) { \n    assert.ok(true, 'utils/url-builder.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/validators/local/email.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - validators/local');\n  QUnit.test('validators/local/email.js should pass jshint', function(assert) { \n    assert.ok(true, 'validators/local/email.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/validators/local/okta-domain.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - validators/local');\n  QUnit.test('validators/local/okta-domain.js should pass jshint', function(assert) { \n    assert.ok(true, 'validators/local/okta-domain.js should pass jshint.'); \n  });\n\n});","define('garaje/tests/validators/local/phone-number.jshint', function () {\n\n  'use strict';\n\n  QUnit.module('JSHint - validators/local');\n  QUnit.test('validators/local/phone-number.js should pass jshint', function(assert) { \n    assert.ok(true, 'validators/local/phone-number.js should pass jshint.'); \n  });\n\n});","define('garaje/transforms/array', ['exports', 'ember-data', 'ember'], function (exports, DS, Ember) {\n\n  'use strict';\n\n  exports['default'] = DS['default'].Transform.extend({\n    deserialize: function deserialize(value) {\n      if (Ember['default'].isArray(value)) {\n        return Ember['default'].A(value);\n      } else {\n        return Ember['default'].A();\n      }\n    },\n    serialize: function serialize(value) {\n      if (Ember['default'].isArray(value)) {\n        return Ember['default'].A(value);\n      } else {\n        return Ember['default'].A();\n      }\n    }\n  });\n\n});","define('garaje/transforms/fragment-array', ['exports'], function (exports) {\n\n\t'use strict';\n\n\texports['default'] = DS.FragmentArrayTransform;\n\n});","define('garaje/transforms/fragment', ['exports'], function (exports) {\n\n\t'use strict';\n\n\texports['default'] = DS.FragmentTransform;\n\n});","define('garaje/transitions/cross-fade', ['exports', 'liquid-fire'], function (exports, liquid_fire) {\n\n  'use strict';\n\n\n  exports['default'] = crossFade;\n  // BEGIN-SNIPPET cross-fade-definition\n  function crossFade() {\n    var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n    liquid_fire.stop(this.oldElement);\n    return liquid_fire.Promise.all([liquid_fire.animate(this.oldElement, { opacity: 0 }, opts), liquid_fire.animate(this.newElement, { opacity: [opts.maxOpacity || 1, 0] }, opts)]);\n  }\n\n  // END-SNIPPET\n\n});","define('garaje/transitions/default', ['exports', 'liquid-fire'], function (exports, liquid_fire) {\n\n  'use strict';\n\n\n  exports['default'] = defaultTransition;\n  function defaultTransition() {\n    if (this.newElement) {\n      this.newElement.css({ visibility: '' });\n    }\n    return liquid_fire.Promise.resolve();\n  }\n\n});","define('garaje/transitions/explode', ['exports', 'ember', 'liquid-fire'], function (exports, Ember, liquid_fire) {\n\n  'use strict';\n\n\n\n  exports['default'] = explode;\n\n  function explode() {\n    var _this = this;\n\n    var seenElements = {};\n    var sawBackgroundPiece = false;\n\n    for (var _len = arguments.length, pieces = Array(_len), _key = 0; _key < _len; _key++) {\n      pieces[_key] = arguments[_key];\n    }\n\n    var promises = pieces.map(function (piece) {\n      if (piece.matchBy) {\n        return matchAndExplode(_this, piece, seenElements);\n      } else if (piece.pick || piece.pickOld || piece.pickNew) {\n        return explodePiece(_this, piece, seenElements);\n      } else {\n        sawBackgroundPiece = true;\n        return runAnimation(_this, piece);\n      }\n    });\n    if (!sawBackgroundPiece) {\n      if (this.newElement) {\n        this.newElement.css({ visibility: '' });\n      }\n      if (this.oldElement) {\n        this.oldElement.css({ visibility: 'hidden' });\n      }\n    }\n    return liquid_fire.Promise.all(promises);\n  }\n\n  function explodePiece(context, piece, seen) {\n    var childContext = Ember['default'].copy(context);\n    var selectors = [piece.pickOld || piece.pick, piece.pickNew || piece.pick];\n    var cleanupOld, cleanupNew;\n\n    if (selectors[0] || selectors[1]) {\n      cleanupOld = _explodePart(context, 'oldElement', childContext, selectors[0], seen);\n      cleanupNew = _explodePart(context, 'newElement', childContext, selectors[1], seen);\n      if (!cleanupOld && !cleanupNew) {\n        return liquid_fire.Promise.resolve();\n      }\n    }\n\n    return runAnimation(childContext, piece)[\"finally\"](function () {\n      if (cleanupOld) {\n        cleanupOld();\n      }\n      if (cleanupNew) {\n        cleanupNew();\n      }\n    });\n  }\n\n  function _explodePart(context, field, childContext, selector, seen) {\n    var child, childOffset, width, height, newChild;\n    var elt = context[field];\n\n    childContext[field] = null;\n    if (elt && selector) {\n      child = elt.find(selector).filter(function () {\n        var guid = Ember['default'].guidFor(this);\n        if (!seen[guid]) {\n          seen[guid] = true;\n          return true;\n        }\n      });\n      if (child.length > 0) {\n        childOffset = child.offset();\n        width = child.outerWidth();\n        height = child.outerHeight();\n        newChild = child.clone();\n\n        // Hide the original element\n        child.css({ visibility: 'hidden' });\n\n        // If the original element's parent was hidden, hide our clone\n        // too.\n        if (elt.css('visibility') === 'hidden') {\n          newChild.css({ visibility: 'hidden' });\n        }\n        newChild.appendTo(elt.parent());\n        newChild.outerWidth(width);\n        newChild.outerHeight(height);\n        var newParentOffset = newChild.offsetParent().offset();\n        newChild.css({\n          position: 'absolute',\n          top: childOffset.top - newParentOffset.top,\n          left: childOffset.left - newParentOffset.left,\n          margin: 0\n        });\n\n        // Pass the clone to the next animation\n        childContext[field] = newChild;\n        return function cleanup() {\n          newChild.remove();\n          child.css({ visibility: '' });\n        };\n      }\n    }\n  }\n\n  function animationFor(context, piece) {\n    var name, args, func;\n    if (!piece.use) {\n      throw new Error(\"every argument to the 'explode' animation must include a followup animation to 'use'\");\n    }\n    if (Ember['default'].isArray(piece.use)) {\n      name = piece.use[0];\n      args = piece.use.slice(1);\n    } else {\n      name = piece.use;\n      args = [];\n    }\n    if (typeof name === 'function') {\n      func = name;\n    } else {\n      func = context.lookup(name);\n    }\n    return function () {\n      return liquid_fire.Promise.resolve(func.apply(this, args));\n    };\n  }\n\n  function runAnimation(context, piece) {\n    return new liquid_fire.Promise(function (resolve, reject) {\n      animationFor(context, piece).apply(context).then(resolve, reject);\n    });\n  }\n\n  function matchAndExplode(context, piece, seen) {\n    if (!context.oldElement || !context.newElement) {\n      return liquid_fire.Promise.resolve();\n    }\n\n    // reduce the matchBy scope\n    if (piece.pick) {\n      context.oldElement = context.oldElement.find(piece.pick);\n      context.newElement = context.newElement.find(piece.pick);\n    }\n\n    if (piece.pickOld) {\n      context.oldElement = context.oldElement.find(piece.pickOld);\n    }\n\n    if (piece.pickNew) {\n      context.newElement = context.newElement.find(piece.pickNew);\n    }\n\n    // use the fastest selector available\n    var selector;\n\n    if (piece.matchBy === 'id') {\n      selector = function (attrValue) {\n        return \"#\" + attrValue;\n      };\n    } else if (piece.matchBy === 'class') {\n      selector = function (attrValue) {\n        return \".\" + attrValue;\n      };\n    } else {\n      selector = function (attrValue) {\n        var escapedAttrValue = attrValue.replace(/'/g, \"\\\\'\");\n        return \"[\" + piece.matchBy + \"='\" + escapedAttrValue + \"']\";\n      };\n    }\n\n    var hits = Ember['default'].A(context.oldElement.find(\"[\" + piece.matchBy + \"]\").toArray());\n    return liquid_fire.Promise.all(hits.map(function (elt) {\n      var attrValue = Ember['default'].$(elt).attr(piece.matchBy);\n\n      // if there is no match for a particular item just skip it\n      if (attrValue === \"\" || context.newElement.find(selector(attrValue)).length === 0) {\n        return liquid_fire.Promise.resolve();\n      }\n\n      return explodePiece(context, {\n        pick: selector(attrValue),\n        use: piece.use\n      }, seen);\n    }));\n  }\n\n});","define('garaje/transitions/fade', ['exports', 'liquid-fire'], function (exports, liquid_fire) {\n\n  'use strict';\n\n\n  exports['default'] = fade;\n\n  // BEGIN-SNIPPET fade-definition\n  function fade() {\n    var _this = this;\n\n    var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n    var firstStep;\n    var outOpts = opts;\n    var fadingElement = findFadingElement(this);\n\n    if (fadingElement) {\n      // We still have some older version that is in the process of\n      // fading out, so out first step is waiting for it to finish.\n      firstStep = liquid_fire.finish(fadingElement, 'fade-out');\n    } else {\n      if (liquid_fire.isAnimating(this.oldElement, 'fade-in')) {\n        // if the previous view is partially faded in, scale its\n        // fade-out duration appropriately.\n        outOpts = { duration: liquid_fire.timeSpent(this.oldElement, 'fade-in') };\n      }\n      liquid_fire.stop(this.oldElement);\n      firstStep = liquid_fire.animate(this.oldElement, { opacity: 0 }, outOpts, 'fade-out');\n    }\n    return firstStep.then(function () {\n      return liquid_fire.animate(_this.newElement, { opacity: [opts.maxOpacity || 1, 0] }, opts, 'fade-in');\n    });\n  }\n\n  function findFadingElement(context) {\n    for (var i = 0; i < context.older.length; i++) {\n      var entry = context.older[i];\n      if (liquid_fire.isAnimating(entry.element, 'fade-out')) {\n        return entry.element;\n      }\n    }\n    if (liquid_fire.isAnimating(context.oldElement, 'fade-out')) {\n      return context.oldElement;\n    }\n  }\n  // END-SNIPPET\n\n});","define('garaje/transitions/flex-grow', ['exports', 'liquid-fire'], function (exports, liquid_fire) {\n\n  'use strict';\n\n\n  exports['default'] = flexGrow;\n  function flexGrow(opts) {\n    liquid_fire.stop(this.oldElement);\n    return liquid_fire.Promise.all([liquid_fire.animate(this.oldElement, { 'flex-grow': 0 }, opts), liquid_fire.animate(this.newElement, { 'flex-grow': [1, 0] }, opts)]);\n  }\n\n});","define('garaje/transitions/fly-to', ['exports', 'liquid-fire'], function (exports, liquid_fire) {\n\n  'use strict';\n\n\n\n  exports['default'] = flyTo;\n  function flyTo() {\n    var _this = this;\n\n    var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n    if (!this.newElement) {\n      return liquid_fire.Promise.resolve();\n    } else if (!this.oldElement) {\n      this.newElement.css({ visibility: '' });\n      return liquid_fire.Promise.resolve();\n    }\n\n    var oldOffset = this.oldElement.offset();\n    var newOffset = this.newElement.offset();\n\n    if (opts.movingSide === 'new') {\n      var motion = {\n        translateX: [0, oldOffset.left - newOffset.left],\n        translateY: [0, oldOffset.top - newOffset.top],\n        outerWidth: [this.newElement.outerWidth(), this.oldElement.outerWidth()],\n        outerHeight: [this.newElement.outerHeight(), this.oldElement.outerHeight()]\n      };\n      this.oldElement.css({ visibility: 'hidden' });\n      return liquid_fire.animate(this.newElement, motion, opts);\n    } else {\n      var motion = {\n        translateX: newOffset.left - oldOffset.left,\n        translateY: newOffset.top - oldOffset.top,\n        outerWidth: this.newElement.outerWidth(),\n        outerHeight: this.newElement.outerHeight()\n      };\n      this.newElement.css({ visibility: 'hidden' });\n      return liquid_fire.animate(this.oldElement, motion, opts).then(function () {\n        _this.newElement.css({ visibility: '' });\n      });\n    }\n  }\n\n});","define('garaje/transitions/move-over', ['exports', 'liquid-fire'], function (exports, liquid_fire) {\n\n  'use strict';\n\n\n\n  exports['default'] = moveOver;\n\n  function moveOver(dimension, direction, opts) {\n    var _this = this;\n\n    var oldParams = {},\n        newParams = {},\n        firstStep,\n        property,\n        measure;\n\n    if (dimension.toLowerCase() === 'x') {\n      property = 'translateX';\n      measure = 'width';\n    } else {\n      property = 'translateY';\n      measure = 'height';\n    }\n\n    if (liquid_fire.isAnimating(this.oldElement, 'moving-in')) {\n      firstStep = liquid_fire.finish(this.oldElement, 'moving-in');\n    } else {\n      liquid_fire.stop(this.oldElement);\n      firstStep = liquid_fire.Promise.resolve();\n    }\n\n    return firstStep.then(function () {\n      var bigger = biggestSize(_this, measure);\n      oldParams[property] = bigger * direction + 'px';\n      newParams[property] = [\"0px\", -1 * bigger * direction + 'px'];\n\n      return liquid_fire.Promise.all([liquid_fire.animate(_this.oldElement, oldParams, opts), liquid_fire.animate(_this.newElement, newParams, opts, 'moving-in')]);\n    });\n  }\n\n  function biggestSize(context, dimension) {\n    var sizes = [];\n    if (context.newElement) {\n      sizes.push(parseInt(context.newElement.css(dimension), 10));\n      sizes.push(parseInt(context.newElement.parent().css(dimension), 10));\n    }\n    if (context.oldElement) {\n      sizes.push(parseInt(context.oldElement.css(dimension), 10));\n      sizes.push(parseInt(context.oldElement.parent().css(dimension), 10));\n    }\n    return Math.max.apply(null, sizes);\n  }\n\n});","define('garaje/transitions/scale', ['exports', 'liquid-fire'], function (exports, liquid_fire) {\n\n  'use strict';\n\n\n\n  exports['default'] = scale;\n  function scale() {\n    var _this = this;\n\n    var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n    return liquid_fire.animate(this.oldElement, { scale: [0.2, 1] }, opts).then(function () {\n      return liquid_fire.animate(_this.newElement, { scale: [1, 0.2] }, opts);\n    });\n  }\n\n});","define('garaje/transitions/scroll-then', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = function (nextTransitionName, options) {\n    for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      rest[_key - 2] = arguments[_key];\n    }\n\n    var _this = this;\n\n    Ember['default'].assert(\"You must provide a transition name as the first argument to scrollThen. Example: this.use('scrollThen', 'toLeft')\", 'string' === typeof nextTransitionName);\n\n    var el = document.getElementsByTagName('html');\n    var nextTransition = this.lookup(nextTransitionName);\n    if (!options) {\n      options = {};\n    }\n\n    Ember['default'].assert(\"The second argument to scrollThen is passed to Velocity's scroll function and must be an object\", 'object' === typeof options);\n\n    // set scroll options via: this.use('scrollThen', 'ToLeft', {easing: 'spring'})\n    options = Ember['default'].merge({ duration: 500, offset: 0 }, options);\n\n    // additional args can be passed through after the scroll options object\n    // like so: this.use('scrollThen', 'moveOver', {duration: 100}, 'x', -1);\n\n    return window.$.Velocity(el, 'scroll', options).then(function () {\n      nextTransition.apply(_this, rest);\n    });\n  }\n\n});","define('garaje/transitions/to-down', ['exports', 'garaje/transitions/move-over'], function (exports, moveOver) {\n\n  'use strict';\n\n  exports['default'] = function (opts) {\n    return moveOver['default'].call(this, 'y', 1, opts);\n  }\n\n});","define('garaje/transitions/to-left', ['exports', 'garaje/transitions/move-over'], function (exports, moveOver) {\n\n  'use strict';\n\n  exports['default'] = function (opts) {\n    return moveOver['default'].call(this, 'x', -1, opts);\n  }\n\n});","define('garaje/transitions/to-right', ['exports', 'garaje/transitions/move-over'], function (exports, moveOver) {\n\n  'use strict';\n\n  exports['default'] = function (opts) {\n    return moveOver['default'].call(this, 'x', 1, opts);\n  }\n\n});","define('garaje/transitions/to-up', ['exports', 'garaje/transitions/move-over'], function (exports, moveOver) {\n\n  'use strict';\n\n  exports['default'] = function (opts) {\n    return moveOver['default'].call(this, 'y', -1, opts);\n  }\n\n});","define('garaje/transitions', ['exports', 'garaje/config/environment'], function (exports, config) {\n\n  'use strict';\n\n  exports['default'] = function () {\n    if (config['default'].environment === 'test') {\n      return;\n    }\n\n    this.transition(this.hasClass('js-liquid-disabled-location'), this.toModel(false), this.use('toUp'), this.reverse('toDown'));\n\n    this.transition(this.hasClass('js-password'), this.toModel(true), this.use('toDown'), this.reverse('toUp'));\n\n    this.transition(this.hasClass('js-tokenized'), this.toModel(true), this.use('toDown'), this.reverse('toUp'));\n  }\n\n});","define('garaje/utils/card-types', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports['default'] = {\n    'Visa': 'visa',\n    'MasterCard': 'mastercard',\n    'American Express': 'amex',\n    'Diners Club': 'dinersclub',\n    'Discover': 'discover',\n    'UnionPay': 'unionpay',\n    'JCB': 'jcb',\n    'Visa Electron': 'visaelectron',\n    'Maestro': 'maestro',\n    'Forbrugsforeningen': 'forbrugsforeningen',\n    'Dankort': 'dankort'\n  };\n\n});","define('garaje/utils/charge-line-item', ['exports', 'ember', 'garaje/utils/prorated-line-item'], function (exports, Ember, ProratedLineItem) {\n\n  'use strict';\n\n  exports['default'] = ProratedLineItem['default'].extend({\n    newPeriodEnd: Ember['default'].computed('period', 'newPeriodStart', 'newPeriod', 'periodEnd', function () {\n      var period = this.get('period');\n      var newPeriod = this.get('newPeriod');\n      var newPeriodStart = moment.unix(this.get('newPeriodStart'));\n      var periodEnd = this.get('periodEnd');\n\n      if (periodEnd && period === newPeriod) {\n        return this.get('periodEnd');\n      } else if (newPeriod === 'yearly') {\n        return newPeriodStart.add(1, 'year').unix();\n      } else if (newPeriod === 'monthly') {\n        return newPeriodStart.add(1, 'month').unix();\n      }\n    }),\n\n    proration: Ember['default'].computed('periodStart', 'newPeriodStart', 'newPeriodEnd', 'periodEnd', function () {\n      var period = this.get('period');\n      var newPeriod = this.get('newPeriod');\n      var periodEnd = this.get('periodEnd');\n\n      // when period changes, we start from now to the full\n      // billing cycle, so no proration needs to happen\n      if (period !== newPeriod || !periodEnd) {\n        return 1;\n      }\n\n      var duration = this.get('newPeriodEnd') - this.get('periodStart');\n      var remaining = this.get('newPeriodEnd') - this.get('newPeriodStart');\n      return remaining / duration;\n    })\n  });\n\n});","define('garaje/utils/child-window', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n\n\n  exports['default'] = childWindow;\n  function childWindow(url, width, height) {\n    return new Ember['default'].RSVP.Promise(function (resolve, reject) {\n      var screenX = typeof window.screenX !== 'undefined' ? window.screenX : window.screenLeft,\n          screenY = typeof window.screenY !== 'undefined' ? window.screenY : window.screenTop,\n          outerWidth = typeof window.outerWidth !== 'undefined' ? window.outerWidth : document.body.clientWidth,\n          outerHeight = typeof window.outerHeight !== 'undefined' ? window.outerHeight : document.body.clientHeight - 22,\n          left = parseInt(screenX + (outerWidth - width) / 2, 10),\n          top = parseInt(screenY + (outerHeight - height) / 2.5, 10),\n          features = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top;\n\n      var newWindow = window.open(url, 'HipChat - Envoy Integration', features);\n\n      if (window.focus) {\n        newWindow.focus();\n      }\n\n      // Check whether the user closes the OAuth window\n      var windowClosedHandler = function windowClosedHandler() {\n        if (newWindow.closed) {\n          Ember['default'].run.cancel(checkWindowClosedTimer);\n          reject();\n        } else {\n          checkWindowClosedTimer = Ember['default'].run.later(windowClosedHandler, 500);\n        }\n      };\n\n      var checkWindowClosedTimer = Ember['default'].run.later(windowClosedHandler, 500);\n\n      Ember['default'].$(window).on('message', function (event) {\n        Ember['default'].run.cancel(checkWindowClosedTimer);\n        var data = JSON.parse(event.originalEvent.data);\n        if (data.status === 'oauth.connected') {\n          Ember['default'].run(function () {\n            resolve(data);\n          });\n        } else {\n          Ember['default'].run(function () {\n            reject(data);\n          });\n        }\n      });\n    });\n  }\n\n});","define('garaje/utils/contains-computed', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n\n\n  exports['default'] = containsComputed;\n  function containsComputed(array, attr) {\n    return Ember['default'].computed(function () {\n      return Ember['default'].makeArray(this.get(array)).contains(attr);\n    }).property(array + '.[]');\n  }\n\n});","define('garaje/utils/discount-line-item', ['exports', 'ember', 'garaje/helpers/formatted-currency'], function (exports, Ember, formatted_currency) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Object.extend({\n    description: Ember['default'].computed('isExpired', 'coupon', function () {\n      var coupon = this.get('coupon');\n      if (!coupon) {\n        return;\n      }\n\n      var description = '';\n      var percentOff = Ember['default'].get(coupon, 'percentOff');\n      var amountOff = Ember['default'].get(coupon, 'amountOff');\n\n      if (percentOff) {\n        description += percentOff + '%';\n      } else if (amountOff) {\n        description += formatted_currency.formattedCurrency(amountOff);\n      }\n\n      description += ' discount';\n\n      if (this.get('isExpired')) {\n        description += ' (expired)';\n      }\n\n      return description;\n    }),\n\n    isExpired: Ember['default'].computed('coupon.valid', function () {\n      return this.get('coupon.valid') === false;\n    }),\n\n    isValid: Ember['default'].computed.not('isExpired'),\n\n    amount: Ember['default'].computed('isValid', 'price', 'coupon.percentOff', 'coupon.amountOff', function () {\n      if (this.get('isValid')) {\n        var percentOff = this.get('coupon.percentOff');\n        var amountOff = this.get('coupon.amountOff');\n        var price = this.get('price');\n\n        if (percentOff) {\n          return -1 * price * percentOff / 100.0;\n        } else if (amountOff) {\n          return -1 * amountOff;\n        }\n      }\n\n      return 0;\n    })\n  });\n\n});","define('garaje/utils/falsy-computed', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n\n\n  exports['default'] = falsyComputed;\n  function falsyComputed(property) {\n    return Ember['default'].computed(function () {\n      var attr = this.get(property);\n      switch (typeof attr) {\n        case 'boolean':\n          return !attr;\n        default:\n          return Ember['default'].isBlank(attr);\n      }\n    }).property(property);\n  }\n\n});","define('garaje/utils/flash-promise', ['exports', 'garaje/utils/flash', 'ember'], function (exports, flash, Ember) {\n\n  'use strict';\n\n  function handleEmberDataEror(reason) {\n    var errorReason = undefined;\n    var responseJSON = reason.errors;\n    if (responseJSON) {\n      if (Ember['default'].isArray(responseJSON)) {\n\n        // if it is a jsonapi error then take out the title\n        responseJSON = responseJSON.map(function (err) {\n          return err.title || err;\n        });\n        // error is an array, join them\n        errorReason = responseJSON.join(', ');\n      } else if (typeof responseJSON === 'string') {\n        // error is a string\n        errorReason = responseJSON;\n      }\n    } else {\n      // fallback\n      errorReason = reason.message;\n    }\n\n    return errorReason;\n  }\n\n  function handleXhrError(reason) {\n    var errorReason = undefined;\n    var responseJSON = reason.responseJSON;\n    if (responseJSON) {\n      if (Ember['default'].isArray(responseJSON.error)) {\n        // error is an array, join them\n        errorReason = responseJSON.error.join(', ');\n      } else if (typeof responseJSON.error === 'string') {\n        // error is a string\n        errorReason = responseJSON.error;\n      }\n    } else {\n      // fallback\n      errorReason = reason.responseText;\n    }\n\n    return errorReason;\n  }\n\n  exports['default'] = function (promise, context, successMessage) {\n    var handleSuccess = arguments.length <= 3 || arguments[3] === undefined ? true : arguments[3];\n    var errorType = arguments.length <= 4 || arguments[4] === undefined ? 'error' : arguments[4];\n\n    var callback = Ember['default'].K;\n\n    if (handleSuccess) {\n      callback = function () {\n        successMessage = successMessage || 'Saved!';\n        flash['default'].call(context, 'success', successMessage);\n      };\n    }\n\n    promise.then(callback)['catch'](function (reason) {\n      var errorReason = undefined;\n\n      if (reason.responseJSON) {\n        errorReason = handleXhrError(reason);\n      } else {\n        errorReason = handleEmberDataEror(reason);\n      }\n\n      if (Ember['default'].isBlank(errorReason)) {\n        // still no errorReason, use statusText\n        errorReason = reason.statusText;\n      }\n\n      if (Ember['default'].isBlank(errorReason)) {\n        // still no errorReason, use reason\n        errorReason = reason;\n      }\n\n      flash['default'].call(context, errorType, 'Error: ' + errorReason);\n    });\n  }\n\n});","define('garaje/utils/flash', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n\n\n  exports['default'] = flash;\n  function sendHide(type) {\n    if (type !== 'error') {\n      if (this.attrs && this.attrs.hideFlash) {\n        this.attrs.hideFlash();\n      } else {\n        this.send('hideFlash');\n      }\n    }\n  }\n  function flash(type, message, duration) {\n    if (Ember['default'].testing) {\n      duration = 0;\n    }\n    if (duration === undefined) {\n      duration = 3000;\n    }\n\n    if (type === 'onboardingError') {\n      this.send('showOnboardingFlash', 'error', message);\n    } else {\n      if (this.attrs && this.attrs.showFlash) {\n        this.attrs.showFlash(type, message);\n      } else {\n        this.send('showFlash', type, message);\n      }\n    }\n    Ember['default'].run.debounce(this, sendHide, type, duration);\n  }\n\n});","define('garaje/utils/geocode', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports.parseAddress = parseAddress;\n\n  exports['default'] = geocode;\n  function parseAddress(address_components, componentForm) {\n    // reference to\n    // https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform\n    if (typeof componentForm === 'undefined') {\n      componentForm = {\n        street_number: 'short_name',\n        route: 'long_name',\n        locality: 'long_name',\n        administrative_area_level_1: 'short_name',\n        country: 'short_name',\n        postal_code: 'short_name',\n        neighborhood: 'long_name'\n      };\n    }\n\n    var parsedPlace = {};\n    for (var i = 0; i < address_components.length; i++) {\n      var addressType = address_components[i].types[0];\n      if (componentForm[addressType]) {\n        var val = address_components[i][componentForm[addressType]];\n        parsedPlace[addressType] = val;\n      }\n    }\n\n    var line1 = undefined;\n    if (parsedPlace.street_number) {\n      line1 = parsedPlace.street_number + ' ' + parsedPlace.route;\n    } else if (parsedPlace.route) {\n      line1 = parsedPlace.route;\n    } else {\n      line1 = parsedPlace.neighborhood;\n    }\n\n    return {\n      line1: line1,\n      city: parsedPlace.locality,\n      country_code: parsedPlace.country,\n      state: parsedPlace.administrative_area_level_1,\n      zip: parsedPlace.postal_code\n    };\n  }\n\n  function geocode(inputAddress) {\n    return new Ember['default'].RSVP.Promise(function (resolve, reject) {\n      if (!window.google) {\n        return;\n      }\n      var geocoder = new google.maps.Geocoder();\n      geocoder.geocode({ address: inputAddress }, function (results, status) {\n        if (status === google.maps.GeocoderStatus.OK) {\n          var result = results[0],\n              location = result.geometry.location;\n\n          Ember['default'].run(null, resolve, {\n            latitude: location.lat(),\n            longitude: location.lng(),\n            address: result.formatted_address,\n            parsedAddress: parseAddress(result.address_components)\n          });\n        } else {\n          Ember['default'].run(null, reject, status);\n        }\n      });\n    });\n  }\n\n});","define('garaje/utils/get-hostname', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n\n\n  exports['default'] = getHostname;\n  var containsProtocol = new RegExp(/^https?:\\/\\//);\n  function getHostname(url) {\n    if (Ember['default'].isBlank(url) || typeof url !== 'string') {\n      return null;\n    }\n\n    url = url.trim();\n\n    if (!containsProtocol.test(url)) {\n      url = 'http://' + url;\n    }\n\n    var elem = document.createElement('a');\n    elem.href = url;\n\n    var hostname = elem.hostname;\n    var port = elem.port;\n\n    // port 0 comes from our friend phantomjs >:(\n    return ['', '0', '80', '443'].contains(port) ? hostname : hostname + ':' + port;\n  }\n\n});","define('garaje/utils/location-line-item', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Object.extend({\n    description: Ember['default'].computed('locationName', 'periodPrice', function () {\n      var locationName = Ember['default'].Handlebars.Utils.escapeExpression(this.get('locationName'));\n      var periodPrice = this.get('periodPrice');\n      return Ember['default'].String.htmlSafe(locationName + ' at <span class=\"js-price updated\">$' + periodPrice + '</span>/mo');\n    }),\n\n    locationName: Ember['default'].computed('location.{name,nameWithCompanyName}', function () {\n      var name = this.get('location.name');\n      return Ember['default'].isBlank(name) ? 'New Location' : this.get('location.nameWithCompanyName');\n    }),\n\n    periodPrice: Ember['default'].computed('period', 'plan.monthlyPrice', 'plan.yearlyPrice', function () {\n      return this.get('plan.' + this.get('period') + 'Price');\n    }),\n\n    amount: Ember['default'].computed('period', 'periodPrice', function () {\n      var price = this.get('periodPrice');\n      return this.get('period') === 'yearly' ? price * 12 : price;\n    })\n  });\n\n});","define('garaje/utils/mapped-field', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Object.extend({\n    value: Ember['default'].computed.alias('fieldData.value'),\n    field: Ember['default'].computed.alias('fieldData.field'),\n\n    isEmptyAndRequired: Ember['default'].computed('isRequired', 'value', function () {\n      return this.get('isRequired') && Ember['default'].isEmpty(this.get('value'));\n    })\n\n  });\n\n});","define('garaje/utils/nda-text', ['exports'], function (exports) {\n\n\t'use strict';\n\n\tvar ndaText = 'NONDISCLOSURE AGREEMENT\\n\\n' + 'In connection with a proposed business relationship, ::COMPANY:: (“Company”) has allowed you (__NAME__) access, or may allow you access, to business, technical or other information, materials and/or ideas (“Proprietary Information,” which term shall include, without limitation, anything you learn or discover as a result of exposure to or analysis of any Proprietary Information).\\n\\n' + 'In consideration of any disclosure and any negotiations concerning the proposed business relationship, you agree as follows:\\n\\n' + '1. You will hold in confidence and will not possess or use (except as required to evaluate the proposed business relationship within the U.S.) or disclose any Proprietary Information except information you can document (a) is in the public domain through no fault of yours, (b) was properly known to you, without restriction, prior to disclosure by Company or (c) was properly disclosed to you by another person without restriction.  You will not reverse engineer or attempt to derive the composition or underlying information, structure or ideas of any Proprietary Information.  The foregoing does not grant you a license in or to any of the Proprietary Information.\\n\\n' + '2. If you decide not to proceed with the proposed business relationship or if asked by Company, you will promptly return all Proprietary Information and all copies, extracts and other objects or items in which Proprietary Information may be contained or embodied.\\n\\n' + '3. You will promptly notify Company of any unauthorized release, disclosure or use of Proprietary Information.\\n\\n' + '4. You understand that this Agreement does not obligate Company to disclose any information or negotiate or enter into any agreement or relationship. You will strictly abide by any and all instructions and restrictions provided by Company from time to time with respect to Proprietary Information or Company systems.  You will ensure the security of any facilities, machines, accounts, passwords and methods you use to store any Proprietary Information or to access Company systems and ensure that no other person has or obtains access thereto.\\n\\n' + '5. The terms of this Agreement will remain in effect with respect to any particular Proprietary Information until you can document that such Proprietary Information falls into one of the exceptions stated in Paragraph 1 above.\\n\\n' + '6. You acknowledge and agree that due to the unique nature of the Proprietary Information, any breach of this agreement would cause irreparable harm to Company for which damages are not an adequate remedy, and that Company shall therefore be entitled to equitable relief in addition to all other remedies available at law.\\n\\n' + '7. Until one year after the later of (i) the date of this Agreement or (ii) the last disclosure of Proprietary Information to you, you will not encourage or solicit any employee or consultant of Company to leave Company for any reason.\\n\\n' + '8. This Agreement is personal to you, is nonassignable by you, is governed by the internal laws of the State and may be modified or waived only in writing signed by both parties.  If any provision of this Agreement is found to be unenforceable, such provision will be limited or deleted to the minimum extent necessary so that the remaining terms remain in full force and effect.  The prevailing party in any dispute or legal action regarding the subject matter of this Agreement shall be entitled to recover attorneys’ fees and costs.\\n\\n' + 'Acknowledged and agreed on __DATE__:';\n\n\texports['default'] = ndaText;\n\n});","define('garaje/utils/oauth', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n\n\n  exports['default'] = oauth;\n  function oauth(providerURL, width, height) {\n    return new Ember['default'].RSVP.Promise(function (resolve, reject) {\n      var screenX = typeof window.screenX !== 'undefined' ? window.screenX : window.screenLeft,\n          screenY = typeof window.screenY !== 'undefined' ? window.screenY : window.screenTop,\n          outerWidth = typeof window.outerWidth !== 'undefined' ? window.outerWidth : document.body.clientWidth,\n          outerHeight = typeof window.outerHeight !== 'undefined' ? window.outerHeight : document.body.clientHeight - 22,\n          left = parseInt(screenX + (outerWidth - width) / 2, 10),\n          top = parseInt(screenY + (outerHeight - height) / 2.5, 10),\n          features = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top;\n\n      var newWindow = window.open(providerURL, 'Login', features);\n      if (window.focus) {\n        newWindow.focus();\n      }\n\n      // Check whether the user closes the OAuth window\n      var windowClosedHandler = function windowClosedHandler() {\n        if (newWindow.closed) {\n          Ember['default'].run.cancel(checkWindowClosedTimer);\n          reject();\n        } else {\n          checkWindowClosedTimer = Ember['default'].run.later(windowClosedHandler, 500);\n        }\n      };\n\n      var checkWindowClosedTimer = Ember['default'].run.later(windowClosedHandler, 500);\n\n      Ember['default'].$(window).one('message', function (event) {\n        Ember['default'].run.cancel(checkWindowClosedTimer);\n        var data = JSON.parse(event.originalEvent.data);\n        if (data.status === 'oauth.connected') {\n          Ember['default'].run(function () {\n            resolve(data);\n          });\n        } else {\n          Ember['default'].run(function () {\n            reject(data);\n          });\n        }\n      });\n    });\n  }\n\n});","define('garaje/utils/onboarding-flash-promise', ['exports', 'garaje/utils/flash-promise'], function (exports, flashPromise) {\n\n  'use strict';\n\n  exports['default'] = function (promise, context) {\n    flashPromise['default'](promise, context, null, false, 'onboardingError');\n  }\n\n});","define('garaje/utils/prorated-line-item', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Object.extend({\n    // Overridable\n    newPeriodStart: Ember['default'].computed.oneWay('periodStart'),\n    newPeriodEnd: Ember['default'].computed.oneWay('periodEnd'),\n    newPeriod: Ember['default'].computed.oneWay('period'),\n    newPlan: Ember['default'].computed.oneWay('plan'),\n\n    description: Ember['default'].computed('quantity', 'newPlan.name', 'newPeriod', 'newPeriodPrice', 'newPeriodStart', 'newPeriodEnd', function () {\n      var quantity = this.get('quantity');\n      var newPlan = this.get('newPlan.name');\n      var newPeriod = this.get('newPeriod');\n      var newPeriodPrice = this.get('newPeriodPrice');\n      var newPeriodStart = moment.unix(this.get('newPeriodStart')).format('MMM D YYYY');\n      var newPeriodEnd = moment.unix(this.get('newPeriodEnd')).format('MMM D YYYY');\n\n      return quantity + ' x ' + newPlan + ' ' + newPeriod + ' at $' + newPeriodPrice + '/mo (' + newPeriodStart + ' - ' + newPeriodEnd + ')';\n    }),\n\n    amount: Ember['default'].computed('baseAmount', 'quantity', 'proration', function () {\n      return this.get('baseAmount') * this.get('quantity') * this.get('proration');\n    }),\n\n    baseAmount: Ember['default'].computed('newPeriodPrice', 'newPeriod', function () {\n      var price = this.get('newPeriodPrice');\n      return this.get('newPeriod') === 'yearly' ? price * 12 : price;\n    }),\n\n    // override\n    proration: Ember['default'].computed(function () {\n      return 1;\n    }),\n\n    newPeriodPrice: Ember['default'].computed('newPeriod', 'newPlan.monthlyPrice', 'newPlan.yearlyPrice', function () {\n      return this.get('newPlan.' + this.get('newPeriod') + 'Price');\n    })\n  });\n\n});","define('garaje/utils/refund-line-item', ['exports', 'ember', 'garaje/utils/prorated-line-item'], function (exports, Ember, ProratedLineItem) {\n\n  'use strict';\n\n  exports['default'] = ProratedLineItem['default'].extend({\n    amount: Ember['default'].computed('baseAmount', 'quantity', 'proration', function () {\n      return this._super() * -1;\n    }),\n\n    proration: Ember['default'].computed('periodStart', 'periodEnd', 'newPeriodEnd', function () {\n      var duration = this.get('periodEnd') - this.get('periodStart');\n      var remaining = this.get('periodEnd') - this.get('newPeriodEnd');\n      return remaining / duration;\n    })\n  });\n\n});","define('garaje/utils/search-computed', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n\n\n  exports['default'] = search;\n  var computed = Ember['default'].computed;\n  function search(dependentKey, propertyKey, searchQueryKey, returnEmptyArray) {\n    returnEmptyArray = typeof returnEmptyArray === \"undefined\" ? false : returnEmptyArray;\n    return computed(\"\" + dependentKey + \".@each.\" + propertyKey, searchQueryKey, function () {\n      var items, query;\n      if (returnEmptyArray && !this.get(searchQueryKey)) {\n        return Ember['default'].A([]);\n      }\n\n      query = this.get(searchQueryKey) || '';\n      query = query.toLowerCase();\n      items = this.get(dependentKey) || Ember['default'].A([]);\n\n      return items.filter(function (item) {\n        if (item.get(propertyKey)) {\n          return item.get(propertyKey).toLowerCase().indexOf(query) !== -1;\n        }\n      });\n    });\n  }\n\n});","define('garaje/utils/simple-ledger', ['exports', 'ember', 'garaje/utils/discount-line-item'], function (exports, Ember, DiscountLineItem) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Object.extend({\n    total: Ember['default'].computed('lineItemsSum', 'discountLineItem.amount', function () {\n      var sum = this.get('lineItemsSum');\n      var discount = this.get('discountLineItem.amount') || 0;\n      return sum + discount;\n    }),\n\n    lineItemsSum: Ember['default'].computed('lineItems.@each.amount', function () {\n      var amount;\n      return this.get('lineItems').reduce(function (prev, lineItem) {\n        amount = Ember['default'].get(lineItem, 'amount') || 0;\n        return prev + amount;\n      }, 0);\n    }),\n\n    discountLineItem: Ember['default'].computed('lineItemsSum', 'coupon', function () {\n      var coupon = this.get('coupon');\n      if (coupon) {\n        return DiscountLineItem['default'].create({ price: this.get('lineItemsSum'), coupon: coupon });\n      }\n    }),\n\n    proratedSubtotal: Ember['default'].computed('charge.amount', 'refund.amount', function () {\n      var charge = this.get('charge.amount') || 0;\n      var refund = this.get('refund.amount') || 0;\n      return charge + refund;\n    }),\n\n    dueNow: Ember['default'].computed('proratedSubtotal', 'proratedDiscount.amount', 'creditBalance', function () {\n      var subtotal = this.get('proratedSubtotal');\n      var discount = this.get('proratedDiscount.amount') || 0;\n      var creditBalance = this.get('creditBalance') || 0;\n      return subtotal + discount + creditBalance;\n    }),\n\n    proratedDiscount: Ember['default'].computed('proratedSubtotal', 'coupon', function () {\n      var coupon = this.get('coupon');\n      if (coupon) {\n        return DiscountLineItem['default'].create({ price: this.get('proratedSubtotal'), coupon: coupon });\n      }\n    })\n  });\n\n});","define('garaje/utils/toggleable', ['exports', 'ember', 'garaje/utils/flash-promise'], function (exports, Ember, flashPromise) {\n\n  'use strict';\n\n\n\n  exports['default'] = toggleable;\n  function toggleable(field, model) {\n    model = model || 'model';\n    var keyPath = [model, field].join('.');\n\n    return Ember['default'].computed(keyPath, {\n      get: function get() {\n        return this.get(keyPath);\n      },\n      set: function set(k, v) {\n        var record = this.get(model);\n        record.rollbackAttributes();\n        this.set(keyPath, v);\n        flashPromise['default'](record.save(), this);\n        return v;\n      }\n    });\n  }\n\n});","define('garaje/utils/tzlookup', ['exports', 'ember', 'garaje/config/environment'], function (exports, Ember, ENV) {\n\n  'use strict';\n\n\n\n  exports['default'] = tzlookup;\n  function tzlookup(latitude, longitude) {\n    return new Ember['default'].RSVP.Promise(function (resolve, reject) {\n      if (ENV['default'].environment === 'test') {\n        Ember['default'].run.later(null, resolve, { timeZoneId: 'UTC' }, 10);\n      } else {\n        Ember['default'].$.ajax({\n          url: 'https://maps.googleapis.com/maps/api/timezone/json?location=' + latitude + ',' + longitude + '&timestamp=' + Math.floor(new Date().getTime() / 1000) + '&sensor=false&key=' + ENV['default'].googleApiKey,\n          success: function success(data) {\n            if (data.status === 'OK') {\n              Ember['default'].run(null, resolve, data);\n            } else {\n              Ember['default'].run(null, reject, data);\n            }\n          },\n          error: function error(data) {\n            Ember['default'].run(null, reject, data);\n          }\n        });\n      }\n    });\n  }\n\n});","define('garaje/utils/uploader', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Uploader.extend({\n    session: Ember['default'].inject.service(),\n    ajax: function ajax(url, params, method) {\n      var headers = {\n        'Accept': 'application/json; charset=utf-8'\n      };\n\n      this.get('session').authorize('authorizer:application', function (headerName, headerValue) {\n        headers[headerName] = headerValue;\n      });\n      var self = this;\n      var settings = {\n        url: url,\n        type: method || 'POST',\n        contentType: false,\n        processData: false,\n        headers: headers,\n        xhr: function xhr() {\n          var xhr = Ember['default'].$.ajaxSettings.xhr();\n          xhr.upload.onprogress = function (e) {\n            self.didProgress(e);\n          };\n          return xhr;\n        },\n        data: params\n      };\n\n      return this._ajax(settings);\n    }\n  });\n\n});","define('garaje/utils/url-builder', ['exports', 'garaje/config/environment'], function (exports, config) {\n\n  'use strict';\n\n  exports.buildUrl = buildUrl;\n\n  function buildUrl(path) {\n    var baseUrl = arguments.length <= 1 || arguments[1] === undefined ? config['default'].apiHost : arguments[1];\n\n    if (path.charAt(0) !== '/') {\n      baseUrl = baseUrl + '/';\n    }\n\n    return '' + baseUrl + path;\n  }\n\n  exports['default'] = {\n    photoUrl: function photoUrl(photoPath) {\n      return buildUrl(photoPath);\n    },\n    analyticsUrl: function analyticsUrl(path) {\n      return buildUrl('/api/v2/analytics/' + path, config['default'].apiHost);\n    },\n    envoyLoginUrl: function envoyLoginUrl(accessToken) {\n      return buildUrl('/users/auth/doorkeeper/callback?access_token=' + accessToken, config['default'].envoyHost);\n    },\n    envoyLogoutUrl: function envoyLogoutUrl(accessToken) {\n      return buildUrl('/users/sign_out?access_token=' + accessToken, config['default'].envoyHost);\n    },\n    exportEntriesUrl: function exportEntriesUrl(locationId, date, query) {\n      var url = 'entries?';\n      if (query) {\n        url = url + 'query=' + query + '&';\n      } else if (date) {\n        url = url + 'date=' + date + '&';\n      }\n      url = url + 'location_id=' + locationId;\n\n      return buildUrl(url, config['default'].envoyHost);\n    },\n    oauthAuthorizeUrl: function oauthAuthorizeUrl(clientId, redirectUri) {\n      return buildUrl('/oauth/authorize?client_id=' + clientId + '&redirect_uri=' + redirectUri + '&response_type=token', config['default'].envoyHost);\n    },\n    slackAuthUrl: function slackAuthUrl() {\n      return buildUrl('/users/auth/slack?state=popup', config['default'].envoyHost);\n    },\n    salesforceAuthUrl: function salesforceAuthUrl() {\n      return buildUrl('/users/auth/salesforce?display=popup', config['default'].envoyHost);\n    },\n    boxAuthUrl: function boxAuthUrl() {\n      return buildUrl('/users/auth/box?state=popup', config['default'].envoyHost);\n    },\n    samlConsumeUrl: function samlConsumeUrl() {\n      return buildUrl('/saml/consume', config['default'].envoyHost);\n    },\n    samlInitUrl: function samlInitUrl(locationId) {\n      return buildUrl('/saml/init/' + locationId, config['default'].envoyHost);\n    },\n    googleAuthUrl: function googleAuthUrl() {\n      return buildUrl('/users/auth/google_oauth2?state=popup', config['default'].envoyHost);\n    },\n    entriesCsvUrl: function entriesCsvUrl(from, to) {\n      return buildUrl('/entries?from_date=' + from + '&to_date=' + to + '&format=csv', config['default'].envoyHost);\n    },\n    v1: {\n      subscriptionUrl: function subscriptionUrl() {\n        return buildUrl('/api/v1/subscription');\n      },\n      adminUrl: function adminUrl() {\n        return buildUrl('/api/v1/admins/me');\n      },\n      entriesCalendarUrl: function entriesCalendarUrl(locationId, date) {\n        return buildUrl('/api/v1/entries/calendar?location_id=' + locationId + '&date=' + date);\n      },\n      companiesUrl: function companiesUrl(id) {\n        return buildUrl('/api/v1/companies/' + id);\n      },\n      logoUploadUrl: function logoUploadUrl(id) {\n        return buildUrl('/api/v1/locations/' + id);\n      },\n      locationUrl: function locationUrl(locationId) {\n        return buildUrl('/api/v1/locations/' + locationId);\n      },\n      sendInvitePreviewUrl: function sendInvitePreviewUrl(locationId) {\n        return buildUrl('/api/v1/locations/' + locationId + '/send_invite_preview');\n      },\n      invitePreviewUrl: function invitePreviewUrl(locationId) {\n        return buildUrl('/api/v1/locations/' + locationId + '/invite_preview');\n      },\n      printBadgesUrl: function printBadgesUrl(locationId) {\n        return buildUrl('/api/v1/locations/' + locationId + '/print_badges');\n      },\n      reprintBadgeUrl: function reprintBadgeUrl(entryId) {\n        return buildUrl('/api/v1/entries/' + entryId + '/print_badge');\n      },\n      welcomeImageUploadUrl: function welcomeImageUploadUrl(id) {\n        return buildUrl('/api/v1/configs/' + id);\n      },\n      slideshowUploadUrl: function slideshowUploadUrl() {\n        return buildUrl('/api/v1/slideshows');\n      },\n      refreshConfigUrl: function refreshConfigUrl(id) {\n        return buildUrl('/api/v1/configs/' + id + '/refresh');\n      },\n      boxUrl: function boxUrl(deviceId) {\n        return buildUrl('/api/v1/devices/' + deviceId + '/integrations/box');\n      },\n      employeesUploadUrl: function employeesUploadUrl() {\n        return buildUrl('/api/v1/employees/upload');\n      },\n      generateApiKeyUrl: function generateApiKeyUrl(id) {\n        return buildUrl('/api/v1/locations/' + id + '/generate_key');\n      },\n      generatePreRegistrationLinkUrl: function generatePreRegistrationLinkUrl(id) {\n        return buildUrl('/api/v1/locations/' + id + '/generate_pre_registration_link');\n      },\n      generateSecurityDeskLinkUrl: function generateSecurityDeskLinkUrl(id) {\n        return buildUrl('/api/v1/locations/' + id + '/generate_security_desk_link');\n      }\n    },\n    v2: {\n      integrations: {\n        enabled: function enabled() {\n          return buildUrl('/api/v2/integrations/enabled');\n        },\n        googleAppsUrl: function googleAppsUrl() {\n          var id = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];\n\n          return buildUrl('/api/v2/integrations/google-apps/' + id);\n        },\n        googleAppUsersUrl: function googleAppUsersUrl(id) {\n          return buildUrl('/api/v2/integrations/google-apps/' + id + '/users');\n        },\n        zapierIntegrationsUrl: function zapierIntegrationsUrl() {\n          var id = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];\n\n          return buildUrl('/api/v2/integrations/zapier-integrations/' + id);\n        },\n        iftttIntegrationsUrl: function iftttIntegrationsUrl() {\n          var id = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];\n\n          return buildUrl('/api/v2/integrations/ifttt-integrations/' + id);\n        },\n        oneLoginUsersUrl: function oneLoginUsersUrl(id) {\n          return buildUrl('/api/v2/integrations/one-logins/' + id + '/users');\n        },\n        oneLoginCustomAttributesUrl: function oneLoginCustomAttributesUrl(id) {\n          return buildUrl('/api/v2/integrations/one-logins/' + id + '/custom-attributes');\n        },\n        oktaUsersUrl: function oktaUsersUrl(id) {\n          return buildUrl('/api/v2/integrations/okta/' + id + '/users');\n        },\n        oktaCustomAttributesUrl: function oktaCustomAttributesUrl(id) {\n          return buildUrl('/api/v2/integrations/okta/' + id + '/custom-attributes');\n        },\n        oktaGroupsUrl: function oktaGroupsUrl(id) {\n          return buildUrl('/api/v2/integrations/okta/' + id + '/groups');\n        },\n        salesforceIntegrationsUrl: function salesforceIntegrationsUrl() {\n          var id = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];\n\n          return buildUrl('/api/v2/integrations/salesforce-integrations/' + id);\n        }\n      },\n      employees: {\n        synchronizeUrl: function synchronizeUrl() {\n          return buildUrl('/api/v2/employees/synchronize');\n        }\n      }\n\n    }\n  };\n\n});","define('garaje/validators/local/email', ['exports', 'ember-validations/validators/base'], function (exports, Base) {\n\n  'use strict';\n\n  exports['default'] = Base['default'].extend({\n    call: function call() {\n      var email = this.model.get(this.property);\n      if (email && email.indexOf('@') === -1) {\n        this.errors.pushObject('is invalid');\n      }\n    }\n  });\n\n});","define('garaje/validators/local/okta-domain', ['exports', 'ember-validations/validators/base', 'ember'], function (exports, Base, Ember) {\n\n  'use strict';\n\n  exports['default'] = Base['default'].extend({\n    call: function call() {\n      var domain = this.model.get(this.property);\n\n      if (Ember['default'].isBlank(domain)) {\n        return;\n      }\n      if (!domain.match(/^([a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\\.)+[a-zA-Z]{2,}$/)) {\n        this.errors.pushObject('must be valid');\n      }\n    }\n  });\n\n});","define('garaje/validators/local/phone-number', ['exports', 'ember-validations/validators/base', 'ember'], function (exports, Base, Ember) {\n\n  'use strict';\n\n  var intlTelInputUtils = window.intlTelInputUtils;\n  var validationError = intlTelInputUtils.validationError;\n\n  exports['default'] = Base['default'].extend({\n    call: function call() {\n      var input = Ember['default'].$(this.options);\n      var error = input.intlTelInput('getValidationError');\n      var numberType = input.intlTelInput('getNumberType');\n\n      // don't perform validation if it's blank. let the\n      // presence validator do it's job if it's required.\n      if (Ember['default'].isBlank(this.model.get(this.property))) {\n        return;\n      }\n\n      switch (error) {\n        case validationError.TOO_SHORT:\n          this.errors.pushObject('is too short');\n          break;\n        case validationError.TOO_LONG:\n          this.errors.pushObject('is too long');\n          break;\n        case validationError.NOT_A_NUMBER:\n          this.errors.pushObject('is not a number');\n          break;\n        case validationError.INVALID_COUNTRY_CODE:\n          this.errors.pushObject('has an invalid country code');\n          break;\n        default:\n          if (numberType !== intlTelInputUtils.numberType.MOBILE && numberType !== intlTelInputUtils.numberType.FIXED_LINE_OR_MOBILE) {\n            this.errors.pushObject('is not a mobile number');\n          }\n      }\n    }\n  });\n\n});","/* jshint ignore:start */\n\n/* jshint ignore:end */\n","/* jshint ignore:start */\n\ndefine('garaje/config/environment', ['ember'], function(Ember) {\n  var prefix = 'garaje';\n/* jshint ignore:start */\n\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = Ember['default'].$('meta[name=\"' + metaName + '\"]').attr('content');\n  var config = JSON.parse(unescape(rawConfig));\n\n  return { 'default': config };\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n/* jshint ignore:end */\n\n});\n\nif (runningTests) {\n  require(\"garaje/tests/test-helper\");\n} else {\n  require(\"garaje/app\")[\"default\"].create({\"name\":\"garaje\",\"version\":\"1.6.11\"});\n}\n\n/* jshint ignore:end */\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACx2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACh2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACltCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACveA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5LA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3nBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnIA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClUA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/rBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3qBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7mBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5gCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACheA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3xBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACveA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC94BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/hCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACt0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC30BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5rBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACncA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9zHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACn8BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3hBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACloBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvhCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxsCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1uDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACntBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACz3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9gBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC52CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;","file":"garaje.js"}